Coding Dojo é um método de aprendizagem para desenvolvimento de projetos em computação, é uma reunião entre várias pessoas que desejam trabalhar coletivamente em um desafio de programação. O desafio pode ser um problema algorítmico a ser resolvido ou uma necessidade de implementação. Cada Coding Dojo se concentra em um assunto específico e representa o objetivo da sessão. Esse assunto deve permitir que aprendamos coletivamente tecnicamente e como enfrentar o desafio com sucesso. O exercício pode ser realizado entre pessoas da mesma empresa, de uma escola ou de diferentes origens.Os primeiros grupos de coding dojo surgiram em 2009.
Dojo é uma palavra de origem japonesa e significa “local de treinamento”, e coding vem do inglês e significa codificação. Portanto, o Coding Dojo nada mais é que do um “local de treinamento de código”, ou “local de treinamento de programação”.
Nessa dinâmica, todas as pessoas constroem juntas a solução, alternando a posição reflexiva da plateia com as posições mais ativas dos pilotos, construindo a partir do trabalho acumulado dos pilotos anteriores.
Inspirado nas práticas dos dojos de artes marciais japonesas, um Coding Dojo inicia-se tipicamente com o seguinte arranjo:
- ao menos um computador conectado a um projetor
- uma tela de projeção que todos possam ver
- um piloto, um copiloto e um mestre
- demais participantes em plateia
O mestre oferece um desafio ao grupo. O piloto, sentado ao computador, é a única pessoa que pode utilizá-lo para concluir o desafio. O copiloto permanece ao seu lado, mas somente para observar o piloto em ação e oferecer indicações. Todos os demais observam e podem discutir entre si apenas o copiloto e o piloto.
Qualquer um pode ainda fazer perguntas ao mestre, mas este só pode responder com outra pergunta.
Independente do desafio ser resolvido, a cada 5 minutos o atual piloto volta à plateia, o copiloto torna-se o próximo piloto, e alguém da plateia assume como copiloto.
A cada desafio cumprido, o mestre oferece um outro, ligeiramente mais complexo.
Quando um bebê está aprendendo a caminhar ele não arrisca dar passos grandes por aí. No Dojo acontece da mesma forma.
O código vai saindo devagar, ajudando para que todos estejam entendendo o que está acontecendo e que rumo tudo está tomando.
Sempre que alguém não estiver entendendo o que está acontecendo, esse tem o direito de perguntar e se encaixar nos trilhos novamente.
Garantindo que todos os participantes estejam acompanhando todo o progresso.
Outra ênfase pode ser no desenvolvimento orientado a testes (Test Driven Development).
Ao final do Coding Dojo, normalmente, os participantes realizam uma retrospectiva do evento.
Nessa retrospectiva, que pode ser realizada utilizando diversas técnicas, de maneira geral são respondidas três perguntas básicas:
- O que aprendemos com o Coding Dojo de hoje;
- O que podemos melhorar para a realização dos próximos Coding Dojos;
- O que devemos continuar fazendo nos próximos Coding Dojos.
- A retrospectiva é extremamente importante, pois condensa todo o aprendizado do Coding Dojo.