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

Mais procurados (20)

Coding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios ÁgeisCoding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios Ágeis
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Coding Dojo #GuruPI
Coding Dojo #GuruPICoding Dojo #GuruPI
Coding Dojo #GuruPI
 
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
 
Codding dojos
Codding dojosCodding dojos
Codding dojos
 
Coding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / InstruçõesCoding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / Instruções
 
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
 
DojoTuba 01
DojoTuba 01DojoTuba 01
DojoTuba 01
 
Contextualizando para Dojo
Contextualizando para DojoContextualizando para Dojo
Contextualizando para Dojo
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Dojo abril
Dojo abrilDojo abril
Dojo abril
 
DojoTuba: Coding Dojo - Tubarão, SC
DojoTuba: Coding Dojo - Tubarão, SCDojoTuba: Coding Dojo - Tubarão, SC
DojoTuba: Coding Dojo - Tubarão, SC
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Dojo com Processing
Dojo com ProcessingDojo com Processing
Dojo com Processing
 
Coding dojo C# com NUnit
Coding dojo C# com NUnitCoding dojo C# com NUnit
Coding dojo C# com NUnit
 
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
 
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...
 
Apresentacao da Curso de Extensão
Apresentacao da Curso de ExtensãoApresentacao da Curso de Extensão
Apresentacao da Curso de Extensão
 

Semelhante a Coding Dojo

Semelhante a Coding Dojo (20)

#safaDojo com Android
#safaDojo com Android#safaDojo com Android
#safaDojo com Android
 
#safaDojo com Android
#safaDojo com Android#safaDojo com Android
#safaDojo com Android
 
O que é "Coding Dojo"?
O que é "Coding Dojo"?O que é "Coding Dojo"?
O que é "Coding Dojo"?
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Codding dojo - Apresentação
Codding dojo - ApresentaçãoCodding dojo - Apresentação
Codding dojo - Apresentação
 
Coding Dojo - Pycon Br 2008 - PT-BR
Coding Dojo - Pycon Br 2008 - PT-BRCoding Dojo - Pycon Br 2008 - PT-BR
Coding Dojo - Pycon Br 2008 - PT-BR
 
Coding Dojo - FISL 2009 - PT-BR
Coding Dojo - FISL 2009 - PT-BRCoding Dojo - FISL 2009 - PT-BR
Coding Dojo - FISL 2009 - PT-BR
 
Coding dojo
Coding dojo Coding dojo
Coding dojo
 
Coding Dojo Juiz de Fora
Coding Dojo Juiz de ForaCoding Dojo Juiz de Fora
Coding Dojo Juiz de Fora
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Coding Dojo Aplicado ao Ambiente Organizacional
Coding Dojo Aplicado ao Ambiente OrganizacionalCoding Dojo Aplicado ao Ambiente Organizacional
Coding Dojo Aplicado ao Ambiente Organizacional
 
Dojo #5
Dojo #5Dojo #5
Dojo #5
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Condingdojo
CondingdojoCondingdojo
Condingdojo
 
AgileDay2012 - Resumo Coding By Example
AgileDay2012 - Resumo Coding By ExampleAgileDay2012 - Resumo Coding By Example
AgileDay2012 - Resumo Coding By Example
 
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
 
O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
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...
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 

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
  • 13.
  • 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