Slide 1

Slide 1 text

Coding Dojo Coding Dojo é uma prática deliberada que promove aprendizagem colaborativa entre pessoas com qualquer nível de experiência com programação.

Slide 2

Slide 2 text

Programação exige prática, mas a maioria dos programadores acabam por “praticar” apenas quando estão executando algum projeto profissional.

Slide 3

Slide 3 text

Treinar é fundamental. Ao contrário do “jogo profissional”, o treino lhe permite exercitar novas técnicas e experimentar exercícios que fortaleçam as fraquezas do jogador. Coding Dojo é uma ótima ferramenta para programadores treinarem.

Slide 4

Slide 4 text

Somente com muito treino é possível fazer um gol de placa.

Slide 5

Slide 5 text

Dave Thomas Dave Thomas sugeriu o termo ‘Kata’ para a realização de exercícios de programação.

Slide 6

Slide 6 text

(型 or 形 literally: "form"): japanese word describing detailed choreographed patterns of movements practiced either solo or in pair http://en.wikipedia.org/wiki/Kata Kata Kata significa forma. É o exercício coreografado que se pratica em artes marciais para compreensão dos movimentos.

Slide 7

Slide 7 text

Ambiente Seguro O Coding Dojo funciona em um ambiente seguro. Um ambiente inclusivo, onde todos possam errar e aprender.

Slide 8

Slide 8 text

Aprendizado Coletivo O aprendizado colaborativo é a grande mágica do Coding Dojo. A dinâmica entre as pessoas possibilita que todos aprendam enquanto compartilham o que aprendem.

Slide 9

Slide 9 text

https://www.youtube.com/watch?v=RaNcCOBb3RI Se liga no que a galera que frequenta o Coding Dojo pensa sobre o assunto…

Slide 10

Slide 10 text

#comofaz?

Slide 11

Slide 11 text

Pré-requisitos

Slide 12

Slide 12 text

Sala Um espaço razoavelmente confortável onde as pessoas se sintam bem.

Slide 13

Slide 13 text

Computador Só precisa de 1 único computador com o ambiente de desenvolvimento preparado na linguagem que você quiser.

Slide 14

Slide 14 text

Projetor Um projetor ou televisão grande onde todos possam acompanhar o código.

Slide 15

Slide 15 text

Rango! Compartilhar biscoitos, bolos, refrigerante e sucos sempre ajudam a animar o encontro.

Slide 16

Slide 16 text

Problema Lúdico É importante que o Dojo não seja sobre um problema de trabalho, sobre coisas “sérias”. Quanto mais lúdico, mais livres os participantes se sentirão para explorar o problema e as infinitas possíveis soluções.

Slide 17

Slide 17 text

Time define a estratégia Comece sempre combinando com todos a estratégia. Como abordarão o problema? Qual a entrada esperada? Qual a saída esperada?

Slide 18

Slide 18 text

Desenvolvimento Guiado por Testes Tudo acontece com TDD, onde primeiro você escreve um código de teste que expresse a sua expectativa e só então você escreve o menor código possível que atende apenas aos testes existentes.

Slide 19

Slide 19 text

Baby Steps http://www.flickr.com/photos/woaw/4639757602/ Faça sempre passos de bebê. Sempre o menor passo possível, o mais específico possível para que o código evolua gradualmente. Lembra-se, chegar ao final do problema não é importante. O importante é a forma de interagir com as pessoas e o código.

Slide 20

Slide 20 text

Ciclo de Baby Steps O ciclo se repete: Comece escrevendo um teste com sua expectativa; Então escreva o menor código que faça o teste passar; Verifique se alguém tem sugestão de melhoria no código; Continue.

Slide 21

Slide 21 text

Programação em Par A programação ocorre sempre em par.

Slide 22

Slide 22 text

Piloto e Co-piloto O piloto é quem interage com o teclado. O co-piloto auxilia verbalmente. Ambos precisam falar alto para que todos acompanhem o processo.

Slide 23

Slide 23 text

Platéia A Platéia acompanha em silêncio, dando espaço para o Piloto errar durante seu turno. Nada de gritar “falta um ponto e vírgula”.

Slide 24

Slide 24 text

Papeis mudam a cada turno A cada 4 minutos os papeis mudam. O Piloto volta para a Platéia, o Co-piloto vira Piloto e alguém da Platéia vira Co-piloto. Todos os participantes passam por todos os papeis!

Slide 25

Slide 25 text

Três Fases Um coding dojo está sempre em alguma dessas 3 fases.

Slide 26

Slide 26 text

“Pelo menos um teste está falhando.” Pelo menos um teste não está passando. A dupla da vez deve se concentrar em fazer o teste passar. A platéia não deve falar nessa fase, para não atrapalhar o Piloto e o Co-piloto.

Slide 27

Slide 27 text

“Todos os teste estão passando.” Os testes acabaram de serem rodados e todos estão passando. Essa é a hora de quem está na platéia dar sugestões para melhorar o código.

Slide 28

Slide 28 text

“Refatoração” O código foi modificado de acordo com as sugestões, mas a bateria de testes ainda não foi rodada. Plateia deve ficar em silêncio até que os testes sejam rodados com sucesso novamente.

Slide 29

Slide 29 text

“Organizar o código como se o próximo programador fosse um psicopata que sabe onde você mora.”

Slide 30

Slide 30 text

TODOS Ninguém pode ficar para trás. Qualquer um que tiver qualquer dúvida deve interromper o Piloto pedindo explicações. Cuidado, dúvidas não são sugestões. ;-)

Slide 31

Slide 31 text

Retrospectiva No final da sessão cada pessoa deve indicar ao menos 1 coisa que gostou e 1 coisa que gostaria que acontecesse na próxima vez. Primeiro guie todos pelo o que foi bom e só depois discutam o que gostariam de melhorar.

Slide 32

Slide 32 text

Regras • Pair programming • 4/7 minutos para cada piloto • Test Driven Development • Baby Steps • Dupla deve falar para todos • Apenas dupla fala “no vermelho” Revisando…

Slide 33

Slide 33 text

Me adicione nas redes e compartilhe comigo como foi o seu Conding Dojo. ;-)