21 de abr. de 2011

Coding Dojo

Participei, hoje, pela primeira vez, de um coding dojo.

O contador de tempo que a gente tinha lá até que pode-se dizer que era bem parecidinho com esse daí u.u

Para o leitor que talvez não saiba, explicarei como funciona, através de minhas palavras (o que pode confundir ou pode clarear a mente do leitor, randomicamente).

Coding dojo é uma atividade em que se reúne um certo grupo de indivíduos programadores para resolver um problema, seguindo algumas estipuladas regras. A idéia é que os programadores que não conhecem a linguagem de programação usada na reunião (essa linguagem é decidida pelo grupo) tenham contato com ela e aprendam os seus basics - pra mim foi tri bom, porque eu nunca tinha mexido com Python.

Estipula-se um tempo (no nosso caso, foi 5min) durante o qual cada programador poderá permanecer programando. Além disso, sempre haverá alguém "ao lado" do programador do momento, para ajudá-lo. A ordem em que se escolhe o programador do momento é dada através (foi assim no nosso caso, ao menos) de uma fila:

Seja PM o programador do momento, AJ o ajudante do momento, e P = (p1,...,pn) a fila dos programadores da platéia, n sendo o número total de programadores menos 2, o processo de troca de programadores se dá, ao término do tempo estipulado, de forma que

PM <-- AJ   ,    AJ <-- p1   ,   pn <-- PM   ,   pk <-- pk+1   ,   1 < k < n

Eu não entendi se isso é natural de todos os coding dojos ou se é só aqui que ocorre sempre assim, mas a gente usa uma técnica de programação chamada TDD: Test Driven Development. A idéia é que, se o nosso algoritmo resolve o problema que estamos tentando resolver, ele deve passar em alguns testes (podem ser testes bem óbvios, como "a entrada está certa", ou "para dada saída, o algoritmo deveria responder tal resposta"). Assim, formulando testes, vamos literalmente "construindo" um algoritmo que faz aquilo que queremos, com a vantagem de que os casos de possíveis erros são testados já na hora de criar o algoritmo. Além disso, ao solucionar-se um teste, a platéia pode comentar sobre o que poderia ter sido feito para melhorar o código, ou coisas do tipo, refletindo, enfim, sobre o código apresentado na tela (eu não explicitei isso, mas a idéia é que a platéia esteja, como tal, realmente vendo o que está acontecendo no computador onde o programa está sendo desenvolvido, através, por exemplo, de um projetos).

Enfim... eu participei de um coding dojo, e achei bem legal (e aprendi um pouquinho de Python =D). Fiquei feliz, principalmente porque o problema que a gente tava resolvendo era muito tri (fizemos altas referências à teoria das categorias)  e porque nas próximas vezes espera-se que tenhamos mais do que os pouquíssimos cinco que fomos hoje, na estréia da série 2011 dos coding dojo INF/UFRGS.

Por fim, deixo o link do site do Coding Dojo INF/UFRGS:
http://www.inf.ufrgs.br/pet/index.php?option=com_content&view=article&id=7&Itemid=21 

Lá o leitor encontrará o código de todas as reuniões dos dojos de 2010 e - espero eu -, de 2011 (quando tivermos mais dojos =D). Além disso, vale avisar (caso o leitor seja meu colega) que a participação nos dojos poderá valer créditos complementares num futuro creio que relativamente distante u.u

Eras isso...

R$

Nenhum comentário:

Postar um comentário