Coding Dojo (dô-jô)
@mateuspontes / #GuruPI
Sobre
                             Mateus Pontes
                             Desenvolvimento Web
                                  Masávio Agência Web

                                  CTIS (TRE-PI)



                             Twitter: @mateuspontes
                             Email: mateuspo10@gmail.com

  php, html, css, javascript, codeigniter, java, jquery, ruby, sinatra, rails, nodejs, wordpress, cms
Pesquisa rápida:

 Quem já participou de um Coding Dojo?

 Quem sabe o que é mas nunca participou?

 Quem não sabe o que é?
Qual a ideia?


 Progamadores não treinam.

 Aprender coisas novas e treinar habilidades.
O que é um Dojo?




                   Local onde se pratica artes marciais.
  O objetivo de praticar os movimentos aprendidos exaustivamente, com isso
          chega a uma maior precisão de cada golpe, movimento,etc.
O que é um Coding Dojo?




  Local onde programadores treinam e melhoram suas habilidades
Princípios do Coding Dojo




        Aprendizado contínuo
Princípios do Coding Dojo




              Ambiente seguro
       Não-competitivo, colaborativo, inclusivo.
Princípios do Coding Dojo




          Passos de bebê
Como funciona?
Duração: ~ 1 hora e 45 minutos; *

Desafio escolhido e explicado para todos;

Princípios ágeis:
  TDD, Pair Programming, Baby steps;

  TDD: escreve um teste. 1 - Falhou? 2 - Faça passar. 3 - Passou? Refatore.

Copiloto troca com o piloto em intervalos pré-definidos;

Solução deve ser construída na hora;

Terminar com a retrospectiva do que foi feito.
  O que foi feito? O que foi bom? O que pode melhorar?
Regras do Coding Dojo

Somente um computador ligado a um projetor;

Plateia deve seguir as regras de cada tipo de Dojo;

Respeito entre os participantes;

Aprender, ensinar e discutir;

Evitar “Flamewars” -> (Ruby é melhor que Java)

Levar problemas novos para cada encontro
Tipos de Coding Dojo

Kata   Piloto e copiloto já determinados

Randori   Todos revezam entre piloto e copiloto

Kake   Vários problemas ou linguagens diferentes.
Kata
Exemplo de Kata




    http://www.egenial.pro/pt/katatom
Randori
Randori

Verde   Plateia participa com comentários e críticas

Vermelho Plateia em silêncio!
Kake

Quase um Randori;

Nível mais avançado;

Vários pares e grupos simultâneos;

Problemas ou linguagens diferentes em cada grupo;

Pessoas trocam entre máquinas a cada turno;
Nossa experiência
Onde encontrar problemas?



http://sites.google.com/site/tddproblems/all-problems-1

http://code.joejag.com/coding-dojo-example-katas/
Mais informações:
 http://dojopi.wordpress.com/

 http://web.cs.wpi.edu/~gpollice/Dojo.html

 http://grupoweblovers.co.cc/2010/12/coding-dojo-para-
 programadores/	

 http://www.prof.kadu.com.br/programacao/dojo/2011/03/o-
 que-e-um-coding-dojo

 http://codingdojo.org/

 http://apoie.org/Dojo.htm

 http://www.slideshare.net/serge_rehem/coding-dojo-em-5-
 minutos
Concluindo..
 Experiência importa mais que o código gerado no final;

 Deve haver respeito mútuo, todos são iguais no Dojo;

 Objetivo é gerar código melhor, mais claro e mais simples;

 Compartilhar conhecimento, conhecer novas pessoas,
 treinar habilidades, ensinar, aprender, experimentar..

 Enfim, se divertir!
Thanks!
@mateuspontes / #GuruPI

Coding Dojo #GuruPI

  • 1.
  • 2.
    Sobre Mateus Pontes Desenvolvimento Web Masávio Agência Web CTIS (TRE-PI) Twitter: @mateuspontes Email: mateuspo10@gmail.com php, html, css, javascript, codeigniter, java, jquery, ruby, sinatra, rails, nodejs, wordpress, cms
  • 3.
    Pesquisa rápida: Quemjá participou de um Coding Dojo? Quem sabe o que é mas nunca participou? Quem não sabe o que é?
  • 4.
    Qual a ideia? Progamadores não treinam. Aprender coisas novas e treinar habilidades.
  • 5.
    O que éum Dojo? Local onde se pratica artes marciais. O objetivo de praticar os movimentos aprendidos exaustivamente, com isso chega a uma maior precisão de cada golpe, movimento,etc.
  • 6.
    O que éum Coding Dojo? Local onde programadores treinam e melhoram suas habilidades
  • 7.
    Princípios do CodingDojo Aprendizado contínuo
  • 8.
    Princípios do CodingDojo Ambiente seguro Não-competitivo, colaborativo, inclusivo.
  • 9.
    Princípios do CodingDojo Passos de bebê
  • 10.
    Como funciona? Duração: ~1 hora e 45 minutos; * Desafio escolhido e explicado para todos; Princípios ágeis: TDD, Pair Programming, Baby steps; TDD: escreve um teste. 1 - Falhou? 2 - Faça passar. 3 - Passou? Refatore. Copiloto troca com o piloto em intervalos pré-definidos; Solução deve ser construída na hora; Terminar com a retrospectiva do que foi feito. O que foi feito? O que foi bom? O que pode melhorar?
  • 11.
    Regras do CodingDojo Somente um computador ligado a um projetor; Plateia deve seguir as regras de cada tipo de Dojo; Respeito entre os participantes; Aprender, ensinar e discutir; Evitar “Flamewars” -> (Ruby é melhor que Java) Levar problemas novos para cada encontro
  • 12.
    Tipos de CodingDojo Kata Piloto e copiloto já determinados Randori Todos revezam entre piloto e copiloto Kake Vários problemas ou linguagens diferentes.
  • 13.
  • 14.
    Exemplo de Kata http://www.egenial.pro/pt/katatom
  • 15.
  • 16.
    Randori Verde Plateia participa com comentários e críticas Vermelho Plateia em silêncio!
  • 17.
    Kake Quase um Randori; Nívelmais avançado; Vários pares e grupos simultâneos; Problemas ou linguagens diferentes em cada grupo; Pessoas trocam entre máquinas a cada turno;
  • 18.
  • 19.
  • 20.
    Mais informações: http://dojopi.wordpress.com/ http://web.cs.wpi.edu/~gpollice/Dojo.html http://grupoweblovers.co.cc/2010/12/coding-dojo-para- programadores/ http://www.prof.kadu.com.br/programacao/dojo/2011/03/o- que-e-um-coding-dojo http://codingdojo.org/ http://apoie.org/Dojo.htm http://www.slideshare.net/serge_rehem/coding-dojo-em-5- minutos
  • 21.
    Concluindo.. Experiência importamais que o código gerado no final; Deve haver respeito mútuo, todos são iguais no Dojo; Objetivo é gerar código melhor, mais claro e mais simples; Compartilhar conhecimento, conhecer novas pessoas, treinar habilidades, ensinar, aprender, experimentar.. Enfim, se divertir!
  • 22.