Dojo@Lapa – 06/10/2010

Na semana passada na Lapa continuamos nossa conversa para alinhar nossas expectativas quanto ao dojo.

Como bem lembrado pelo Cláudio Berrondo, o propósito do dojo está ligado com as práticas e princípios do desenvolvimento Ágil, e não atrelado a uma linguagem ou paradigma de programação, ou a um grupo de problemas.

Apesar de não ser o mais importante, a linguagem que usamos importa. Faz diferença.

Não adianta fazer dojos em N linguagens se com o tempo, depois de D dojos, os participantes sabem tanto das linguagens quanto no dojo zero. Isso promove “programar em C” em qualquer linguagem. Faz com que nos limitemos a programar nas diversas linguagens usando o mínimo de suas funcionalidades.

Após um papo inicial, resolvemos refazer o problema da semana anterior, usando também a mesma linguagem.

Detectamos que nem todos entendem o funcionamento do framework de testes, e muitos “detalhes” tem passado desapercebidos. O compromisso para esta próxima quarta é que vamos destrinchar o funcionamento de todas as coisas básicas, deste colocar o computador e projetor no lugar, até preparar o computador para receber nossos testes e demais códigos.

É também compromisso de cada um aprender mais sobre as linguagens que formos usando.

Inspirados no link que o Bernardo Fontes compartilhou na lista resolvemos repetir o problema para tentarmos abordar as partes mais desafiadoras do mesmo, ao invés de fazer o comecinho e pular para outra coisa.

 

Basicamente o problema da Espiral consiste em retornar um string com números formando uma espiral de tamanho m x n. Todos os números devem ser representados com a mesma quantidade de caracteres, usando espaços para alinhar à direita quando apropriado.

Não demorou muito para cobrirmos todos os casos da semana passada, gerando a saída correta para casos com 1 e 2 linhas, e casos que necessitam de alinhamento. Então avançamos para tratar mais linhas.

Desta vez foi mais fácil entender o uso de funções/métodos como map, str, ljust, strip, que já haviam sido usados na semana passada.

Presentes:

  • Carlos Carneiro (x4ids)
  • Cláudio Berrondo
  • Diego Sorrilha (x4ids)
  • Gustavo Sorrilha (x4ids)
  • Israel Teixeira
  • João Caldeira (x4ids)
  • Lara Mulé (x4ids)
  • Leandro Thimóteo
  • Raphael Almeida
  • Rodolfo Carvalho
  • Valéria Parajara

 

Retrospectiva

Além de debater como foi o encontro, nos compromissamos para na sessão seguinte garantir que todos entendem o que está por trás dos testes.

🙂

Nos pontos positivos, foi bom ter a presença do Berrondo que não aparecia há um tempão. E ele introduziu um conhecimento sobre escopo em Python. Apesar de todos terem aprendido ou não como usar o globals() e o global, é melhor esquecer das variáveis globais, elas geralmente trazem mais problema que solução…

No início da sessão resolvemos inverter a ordem, sugestão do Israel: piloto vira copiloto, alguém da platéia vira piloto e o copitolo vai pra platéia. Isso trouxe um bom dinamismo no estilo “quer fazer, vai lá e faz!”.

Bastava querer implementar e você já estava com o teclado em mãos. Além disso o copiloto podia ajudar a dar continuidade a uma idéia que tenha ficado pelo meio do caminho ao fim do tempo da dupla anterior.

Ter repetido o problema e a linguagem levantou um boa discussão, sobre até que ponto isso é saudável. Para este dojo em específico foi produtivo ter repetido. Isso é algo a ser tratado caso a caso, com cuidado.

Todos estavam centrados no mesmo objetivo, e diferente do que aconteceu muitas vezes, tivemos distração muito baixa, talvez até nula. Todos focados.

😦

Precisamos entender melhor as implicações de “repetir problema” e “repetir linguagem” deliberadamente. Uns gostaram, outros acharam que não é bom. Vale a máxima lembrada pelo Berrondo, que o importante são outras coisas como pair programming, código coletivo, refactoring, TDD, baby steps, etc.

Um problema no meio da sessão foi avançar em mudar uma implementação, sem que todos tivessem entendido os problemas na implementação anterior. Vale o puxão de orelha para nos atentarmos mais na próxima. É papel de todos garantir que o grupo está entendendo 100% da solução. Qualquer dúvida: pare tudo e vamos as explicações!

Não lembro muito bem o que era o “deixe-me errar”, acho que uma reclamação do Leandro no final? Bem, todos tem o direito de experimentar e errar, sem problema 😀

 

Até a próxima!

One Response to Dojo@Lapa – 06/10/2010

  1. Olá pessoal do dojorio,
    Um colega da lista do pyscience-brasil me indicou o site de vocês. Bem, sou estudante de mestrado e na minha pesquisa estou fazendo um levantamento sobre o desempenho e difiuldades dos alunos em algoritmos. Para colher essas informações disponibilizei o seguinte questionário: http://takkouservices.appspot.com/aluno, gostaria de pedir a ajuda de vocês na divulgação e preenchimento deste questionário. Com isso quero reunir informações para meu mestrado e discutir modos de melhorar o ensino desta disciplina.
    Desde já agradeço a ajuda.

%d blogueiros gostam disto: