SlideShare uma empresa Scribd logo
Coding Dojo
Quem sou eu?

Willians de Paula Pereira
 Especialista em Engenharia de Software
  com Ênfase em Software Livre




 Professor do Instituto Federal de
  Educação, Ciência e Tecnologia de
  Rondônia
Quem sou eu?

  Willians de Paula Pereira
Membro do Grupo de
 Pesquisa em Automação e
 Robótica – GPMecatrônica

Corintiano
Mesatenista
Desenvolvedor
Aprendiz
Geek
Por que eu deveria fazer Coding
Dojo?
Programadores não treinam
Por que eu deveria fazer Coding
Dojo?



Por que eu deveria treinar
 programação?
Por que eu deveria fazer Coding
Dojo?
Na música: eles treinam
Por que eu deveria fazer Coding
Dojo?
Nas artes marciais: eles treinam
Por que eu deveria fazer Coding
Dojo?
Nos esportes: eles treinam
Por que eu deveria fazer Coding
Dojo?
Até eles treinam
Por que eu deveria fazer Coding
Dojo?
Quando programadores
 fazem treinamento apenas
 parte do que ele aprendeu se
 aplica no dia-a-dia
Por que eu deveria fazer Coding
   Dojo?
Se você não aplica o conhecimento adquirido:
 Você não saberá utilizar todo o pontencial das
  tecnologias
 Seu chefe vai te cobrar
 Você vai se cobrar
 Seus amigos nerds
  vão te zoar
 Você irá arder no mármore
  do inferno
Não se preocupe, pois todos
 os seus problemas acabaram

       Diretamente da
Coding Dojo
What’s f** Coding Dojo?
Primeiramente o que é um Dojo?
 Dojo é o local onde se treinam artes
  marciais japonesas. Muito mais do que
  uma simples área, o dojo deve ser
  respeitado como se fosse a casa dos
  praticantes.
 Por isso, é comum ver o praticante
  fazendo uma reverência antes de
  adentrar, tal como se faz nos lares
  japoneses.
 «do» quer dizer caminho, estrada ou
  trilha (sentido espiritual), e «jo»:
  lugar, espaço físico, sítio.
 Logo, «dojô» é o lugar onde se pratica o
  caminho de uma arte marcial
O que é Coding Dojo?
Segundo o http://codingdojo.org
 “um Coding Dojo é uma reunião
 onde um grupo de
 programadores se unem para
 trabalhar em um desafio de
 programação. Eles estão lá para
 se divertir e se envolver, a fim de
 melhorar suas habilidades.”
Ambos são treinamentos
Os mais experientes passam o
 conhecimento para os menos experientes
Treinamento a partir de repetições com
 pequenos passos
Como surgiu?
 No Mundo (desde 2003) a partir do Dojo de
  Paris, fundado por:
   Dave Thomas - criou a idéia em seu blog
   Laurent Bossavit - propôs a criação de um
    espaço de treinamento em grupo, um Dojo
   Emannuel Gaillot

 No Brasil (desde 2007):
   Ivan Sanchez - Dojo Floripa (pioneiro)
   Danilo Sato - Dojo São Paulo - IME - USP
   Dojo de Recife
   Dojo Rio - Blog
Objetivos
Praticar
Aprender
Ensinar
Descobrir o
 potencial de uma
 tecnologia
 discutindo com
 BASES
 CONCRETAS
Princípios

 Aprendizado contínuo
 Ambiente
    Não-competitivo
    Colaborativo
    Inlcusivo
 Local para
  experimentar e testar
 Passos de bebê (baby
  steps)
Regras Gerais

Computador + Projetor
TDD – Test-Driven Development
 vermelho -> verde -> refatoração
Todos devem entender
Sempre recomeça do zero
Restrospectiva
Ao final de toda reunião
 O que aprendemos?
 O que não aprendemos
 O que poderia melhorar?
  Discussões e comentários
TODOS devem estar em sincronia
Práticas utilizadas
Programação em par
Práticas utilizadas
TDD – Test-Driven Development
Práticas utilizadas
 Passos de bebê (baby steps)




 Implicam em fazer apenas pequenas mudanças
  de cada vez.
 Por exemplo, ao invés de escrever todo o
  conteúdo de uma classe de uma vez, podemos
  nos concentrar em um método de cada vez.
Práticas utilizadas
 Humanismo
   Pessoas desenvolvem software. Metodologias e ferramentas
    apenas as ajudam a realizar o trabalho.
 Falha
   Na dúvida, falhe! Desenvolvimento de software sempre vem
    acompanhado de novos problemas, muitos dos quais não
    temos ideia de como resolver em princípio.
 Redundância
   Sim, redundância. Os problemas difíceis e críticos em
    desenvolvimento de software devem ser resolvidos de várias
    formas diferentes.
 Qualidade
   Software de má qualidade representa uma enorme perda,
 Melhoria
   Ideal não nos preocuparmos em construir o software
    perfeito, nem o design perfeito, nem o processo perfeito, mas
    sim em aperfeiçoar esses e outros aspectos dos projetos
    continuamente.
E NUNCA ESQUEÇA DE REFATORAR
Essas práticas te
 lembram algo?
Métodos ágeis tem tudo a ver com
Coding Dojo
Fluxo do Coding Dojo
Fluxo de tempo
Tipos de Dojo


Kata
Randori
Kake
Regras Gerais - Kata
Apresentação de uma
 solução de um
 problema de Dojo “feito
 em casa”
Apresentado em
 reunião “ao vivo”
Todos devem
 conseguir reproduzir
Interrupções são
 permitidas pra tirar
 dúvidas
Regras Gerais - Randori
 TODOS discutem qual problema querem fazer
 TODOS fazem sugestões de testes para resolver
  o problema
 Programação em pares
 Turnos time-boxed
 Após o turno (5-7 minutos)
    O co-piloto vira piloto
    O piloto volta pra platéia
    Um novo co-piloto é
     convidado da platéia
Regras Gerais - Randori
Detalhe importante
 COMENTÁRIOS E CRÍTICAS DA
  PLATÉIA SOMENTE QUANDO OS
  TESTES ESTIVEREM VERDES
 SILÊNCIO QUANDO OS TESTES
  ESTIVEREM VERMELHOS
Regras Gerais - Kake
 Evolução do Randori
 Nível mais avançado de
  Coding Dojo
 Sem projetor
 Vários pares resolvem
   Diferentes problemas de
    uma mesma linguagem
   O mesmo problema em
    diferentes linguagens
   Diferentes problemas em
    diferentes linguagens
As sessões duram em média 2 horas
Nem sempre o desafio é
 concluído, afinal não é o objetivo
O que fazer em um Coding Dojo?
 Experimentar novas ideias
 Divertir-se
 Esquema da reunião
   30 minutos – preparativos (arrumar a
    sala, lightning talks)
   20 minutos – escolha do problema (brainstorm)
   60 minutos – programação
   20 a 30 minutos – retrospectiva
   10 minutos – encerramento
O que NÃO FAZER no Coding Dojo?
 Correr para terminar o problema
 Pegar um problema real
 Entrar em "Flamewars" nas
  discussões
 Competir com outros participantes
 Deixar pessoas sem entender
Como aproveitar ao máximo o
Coding Dojo
Entre nas discussões
Participe
Seja piloto ou co-piloto mesmo que você
 não conheça a tecnologia, lembre-se que
 as pessoas estão lá pra te ajudar
Faça networking
Conheça pessoas diferentes
Ao final do Dojo não esqueça da
         confraternização




     +            =
Estratégias para promover Coding
Dojo
Encontre pessoas interessadas em aprender
Utilize problemas diferentes em cada sessão
Devem ser contínuos
As sessões devem acontecer normalmente
 de 15 em 15 dias
Convide toda a comunidade de
 desenvolvedores e vista a camisa de
 programador
Após o Coding Dojo divulgue o que sua
 comunidade tem feito
Principais comunidades de Coding
           Dojo no Brasil




DOJO RIO               DOJO SP
5 Razões para você ter Coding
Dojo na sua empresa
É a maneira mais fácil e barata de investir
 em treinamento

Estimula habilidades sociais e de auto-
 organização

É publicidade para a empresa

Incentiva os desenvolvedores a
 participarem da comunidade
Algumas fontes de problemas para
Coding Dojo
 Coding Dojo SP – Google Groups
 http://www.codingdojo.org/cgi-bin/wiki.pl?KataCatalogue
 http://dojopuzzles.com/
 https://sites.google.com/site/tddproblems/all-problems-1
 http://www.rubyquiz.com/
@williansdepaula
      /williansdepaula
williansdepaula@gmail.com

Mais conteúdo relacionado

ODP
Coding Dojo em 5 Minutos
PDF
Coding Dojo - Aprendendo a programar programando
ODP
Coding dojo
PDF
Demoiselle Paraguay Dojo 18/01/2012
PDF
Coding Dojo e TDD
PDF
Apresentação Coding Dojo em 10 minutos
PPTX
Coding Dojo
ODP
Coding Dojo
Coding Dojo em 5 Minutos
Coding Dojo - Aprendendo a programar programando
Coding dojo
Demoiselle Paraguay Dojo 18/01/2012
Coding Dojo e TDD
Apresentação Coding Dojo em 10 minutos
Coding Dojo
Coding Dojo

Mais procurados (20)

PPTX
Coding Dojo - Aplicando Princípios Ágeis
PDF
Coding dojo
PDF
Coding Dojo #GuruPI
PDF
Coding Dojo: uma abordagem teórica e prática
PDF
Codding dojos
ODP
Coding Dojo - Apresentação / Instruções
PDF
Pós Ruy - 2 e 3 Camadas - Coding Dojo
PPT
DojoTuba 01
PDF
Contextualizando para Dojo
PDF
Coding Dojo
PPTX
DojoTuba: Coding Dojo - Tubarão, SC
PDF
Coding Dojo
PDF
Dojo com Processing
PPTX
Coding dojo C# com NUnit
PPTX
Coding Dojo em 10 Minutos!
PDF
Coding dojo
PDF
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
PDF
Apresentacao da Curso de Extensão
Coding Dojo - Aplicando Princípios Ágeis
Coding dojo
Coding Dojo #GuruPI
Coding Dojo: uma abordagem teórica e prática
Codding dojos
Coding Dojo - Apresentação / Instruções
Pós Ruy - 2 e 3 Camadas - Coding Dojo
DojoTuba 01
Contextualizando para Dojo
Coding Dojo
DojoTuba: Coding Dojo - Tubarão, SC
Coding Dojo
Dojo com Processing
Coding dojo C# com NUnit
Coding Dojo em 10 Minutos!
Coding dojo
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Apresentacao da Curso de Extensão
Anúncio

Semelhante a Coding Dojo (20)

PDF
Coding dojo
PDF
Coding Dojo - Pycon Br 2008 - PT-BR
PPTX
Coding Dojo Aplicado ao Ambiente Organizacional
PDF
Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender
PPTX
Coding Dojo - Técnico
PPTX
Apresentação sobre Coding Dojo
PDF
Coding Dojo - FISL 2009 - PT-BR
PPT
Codding dojo - Apresentação
PDF
Coding dojo
PDF
Coding dojo
KEY
Coding Dojo
PPTX
Coding dojo
PPT
DojoMoc - Introdução Coding Dojo
PDF
Intro Dojo Rio
PDF
Coding Dojo - Conceitos
PDF
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
PPTX
Joinville Dojo 2010
PDF
Intro Dojo Rio Python Campus
PDF
#safaDojo com Android
PDF
#safaDojo com Android
Coding dojo
Coding Dojo - Pycon Br 2008 - PT-BR
Coding Dojo Aplicado ao Ambiente Organizacional
Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender
Coding Dojo - Técnico
Apresentação sobre Coding Dojo
Coding Dojo - FISL 2009 - PT-BR
Codding dojo - Apresentação
Coding dojo
Coding dojo
Coding Dojo
Coding dojo
DojoMoc - Introdução Coding Dojo
Intro Dojo Rio
Coding Dojo - Conceitos
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Joinville Dojo 2010
Intro Dojo Rio Python Campus
#safaDojo com Android
#safaDojo com Android
Anúncio

Coding Dojo

  • 2. Quem sou eu? Willians de Paula Pereira Especialista em Engenharia de Software com Ênfase em Software Livre Professor do Instituto Federal de Educação, Ciência e Tecnologia de Rondônia
  • 3. Quem sou eu? Willians de Paula Pereira Membro do Grupo de Pesquisa em Automação e Robótica – GPMecatrônica Corintiano Mesatenista Desenvolvedor Aprendiz Geek
  • 4. Por que eu deveria fazer Coding Dojo? Programadores não treinam
  • 5. Por que eu deveria fazer Coding Dojo? Por que eu deveria treinar programação?
  • 6. Por que eu deveria fazer Coding Dojo? Na música: eles treinam
  • 7. Por que eu deveria fazer Coding Dojo? Nas artes marciais: eles treinam
  • 8. Por que eu deveria fazer Coding Dojo? Nos esportes: eles treinam
  • 9. Por que eu deveria fazer Coding Dojo? Até eles treinam
  • 10. Por que eu deveria fazer Coding Dojo? Quando programadores fazem treinamento apenas parte do que ele aprendeu se aplica no dia-a-dia
  • 11. Por que eu deveria fazer Coding Dojo? Se você não aplica o conhecimento adquirido: Você não saberá utilizar todo o pontencial das tecnologias Seu chefe vai te cobrar Você vai se cobrar Seus amigos nerds vão te zoar Você irá arder no mármore do inferno
  • 12. Não se preocupe, pois todos os seus problemas acabaram Diretamente da
  • 15. Primeiramente o que é um Dojo?  Dojo é o local onde se treinam artes marciais japonesas. Muito mais do que uma simples área, o dojo deve ser respeitado como se fosse a casa dos praticantes.  Por isso, é comum ver o praticante fazendo uma reverência antes de adentrar, tal como se faz nos lares japoneses.  «do» quer dizer caminho, estrada ou trilha (sentido espiritual), e «jo»: lugar, espaço físico, sítio.  Logo, «dojô» é o lugar onde se pratica o caminho de uma arte marcial
  • 16. O que é Coding Dojo? Segundo o http://codingdojo.org “um Coding Dojo é uma reunião onde um grupo de programadores se unem para trabalhar em um desafio de programação. Eles estão lá para se divertir e se envolver, a fim de melhorar suas habilidades.”
  • 17. Ambos são treinamentos Os mais experientes passam o conhecimento para os menos experientes Treinamento a partir de repetições com pequenos passos
  • 18. Como surgiu?  No Mundo (desde 2003) a partir do Dojo de Paris, fundado por:  Dave Thomas - criou a idéia em seu blog  Laurent Bossavit - propôs a criação de um espaço de treinamento em grupo, um Dojo  Emannuel Gaillot  No Brasil (desde 2007):  Ivan Sanchez - Dojo Floripa (pioneiro)  Danilo Sato - Dojo São Paulo - IME - USP  Dojo de Recife  Dojo Rio - Blog
  • 19. Objetivos Praticar Aprender Ensinar Descobrir o potencial de uma tecnologia discutindo com BASES CONCRETAS
  • 20. Princípios  Aprendizado contínuo  Ambiente  Não-competitivo  Colaborativo  Inlcusivo  Local para experimentar e testar  Passos de bebê (baby steps)
  • 21. Regras Gerais Computador + Projetor TDD – Test-Driven Development vermelho -> verde -> refatoração Todos devem entender Sempre recomeça do zero
  • 22. Restrospectiva Ao final de toda reunião O que aprendemos? O que não aprendemos O que poderia melhorar? Discussões e comentários
  • 23. TODOS devem estar em sincronia
  • 25. Práticas utilizadas TDD – Test-Driven Development
  • 26. Práticas utilizadas  Passos de bebê (baby steps)  Implicam em fazer apenas pequenas mudanças de cada vez.  Por exemplo, ao invés de escrever todo o conteúdo de uma classe de uma vez, podemos nos concentrar em um método de cada vez.
  • 27. Práticas utilizadas  Humanismo  Pessoas desenvolvem software. Metodologias e ferramentas apenas as ajudam a realizar o trabalho.  Falha  Na dúvida, falhe! Desenvolvimento de software sempre vem acompanhado de novos problemas, muitos dos quais não temos ideia de como resolver em princípio.  Redundância  Sim, redundância. Os problemas difíceis e críticos em desenvolvimento de software devem ser resolvidos de várias formas diferentes.  Qualidade  Software de má qualidade representa uma enorme perda,  Melhoria  Ideal não nos preocuparmos em construir o software perfeito, nem o design perfeito, nem o processo perfeito, mas sim em aperfeiçoar esses e outros aspectos dos projetos continuamente.
  • 28. E NUNCA ESQUEÇA DE REFATORAR
  • 29. Essas práticas te lembram algo?
  • 30. Métodos ágeis tem tudo a ver com Coding Dojo
  • 34. Regras Gerais - Kata Apresentação de uma solução de um problema de Dojo “feito em casa” Apresentado em reunião “ao vivo” Todos devem conseguir reproduzir Interrupções são permitidas pra tirar dúvidas
  • 35. Regras Gerais - Randori  TODOS discutem qual problema querem fazer  TODOS fazem sugestões de testes para resolver o problema  Programação em pares  Turnos time-boxed  Após o turno (5-7 minutos)  O co-piloto vira piloto  O piloto volta pra platéia  Um novo co-piloto é convidado da platéia
  • 36. Regras Gerais - Randori Detalhe importante COMENTÁRIOS E CRÍTICAS DA PLATÉIA SOMENTE QUANDO OS TESTES ESTIVEREM VERDES SILÊNCIO QUANDO OS TESTES ESTIVEREM VERMELHOS
  • 37. Regras Gerais - Kake  Evolução do Randori  Nível mais avançado de Coding Dojo  Sem projetor  Vários pares resolvem  Diferentes problemas de uma mesma linguagem  O mesmo problema em diferentes linguagens  Diferentes problemas em diferentes linguagens
  • 38. As sessões duram em média 2 horas Nem sempre o desafio é concluído, afinal não é o objetivo
  • 39. O que fazer em um Coding Dojo?  Experimentar novas ideias  Divertir-se  Esquema da reunião  30 minutos – preparativos (arrumar a sala, lightning talks)  20 minutos – escolha do problema (brainstorm)  60 minutos – programação  20 a 30 minutos – retrospectiva  10 minutos – encerramento
  • 40. O que NÃO FAZER no Coding Dojo? Correr para terminar o problema Pegar um problema real Entrar em "Flamewars" nas discussões Competir com outros participantes Deixar pessoas sem entender
  • 41. Como aproveitar ao máximo o Coding Dojo Entre nas discussões Participe Seja piloto ou co-piloto mesmo que você não conheça a tecnologia, lembre-se que as pessoas estão lá pra te ajudar Faça networking Conheça pessoas diferentes
  • 42. Ao final do Dojo não esqueça da confraternização + =
  • 43. Estratégias para promover Coding Dojo Encontre pessoas interessadas em aprender Utilize problemas diferentes em cada sessão Devem ser contínuos As sessões devem acontecer normalmente de 15 em 15 dias Convide toda a comunidade de desenvolvedores e vista a camisa de programador Após o Coding Dojo divulgue o que sua comunidade tem feito
  • 44. Principais comunidades de Coding Dojo no Brasil DOJO RIO DOJO SP
  • 45. 5 Razões para você ter Coding Dojo na sua empresa É a maneira mais fácil e barata de investir em treinamento Estimula habilidades sociais e de auto- organização É publicidade para a empresa Incentiva os desenvolvedores a participarem da comunidade
  • 46. Algumas fontes de problemas para Coding Dojo  Coding Dojo SP – Google Groups  http://www.codingdojo.org/cgi-bin/wiki.pl?KataCatalogue  http://dojopuzzles.com/  https://sites.google.com/site/tddproblems/all-problems-1  http://www.rubyquiz.com/
  • 47. @williansdepaula /williansdepaula williansdepaula@gmail.com