DojoRio@UFF – 15/06/2010 Em ritmo de Copa

quarta-feira, 16 junho 2010

Galera,

Rolou ontem mais um DojoRio@UFF. Só para lembrar, esse Dojo é regido pelos calouros do Curso de Ciência da Computação com o intuito de eles aprenderem entre si, já que a discrepância entre as diversas turmas das disciplinas Programação I e II do curso é bem grande.

Para manter o clima de Copa do Mundo, o problema foi fazer um avaliador de bolão. De entrada era esperada duas ou mais apostadores, suas respectivas listas de apostas e uma lista com os resultados finais das partidas. A saída deveria ser o nome do apostador que foi vencedor e a pontuação que ele obteve. Diferentemente da Copa e felizmente, nós não tivemos vuvuzelas presentes na sessão.

O código resultante está nesse repositório no Github. Como nós usamos o parâmetro para ativar o commit para o repositório git a cada salvamento de arquivo do Dojotools, vocês poderão pelo no histórico de commits como foi a evolução do código e nossos erros.

A abordagem para o problema foi bem discutida e a modelagem que nós adotamos nos ajudou muito a manter o código sustentável. Além disso, o fato de testarmos primeiro os casos de comparação entre dois resultados para depois atacarmos a solução final foi essencial para o entendimento e o desenvolvimento de maneira organizada do código.

Estavam em campos 10 jogadores:

Os pontos positivos foram:

  • O problema +++
  • Biscoitos +++
  • Época de Copa do Mundo
  • Jogo do Brasil no DCE +
  • Explicação do and e or simulados por if’s e o caso ter acontecido depois
  • Começar a realmente entender Ruby
  • Ruby é sexy ++
  • Todos programaram +
  • Dojotools com o git ++
  • Orientação à objetos ++
  • Discussões boas ++++
  • Veio uma galera boa +
  • Ambiente
  • Linguagem nova ++
  • Iniciativa dos calouros propondo modificações no Dojo
  • Modelagem é tudo e resulta em avanço
  • Mouse
  • Quadro impedindo o reflexo do sol
  • Avanço no código da maneira sustentável +
  • O horário

Os pontos a serem melhorados foram:

  • Faltou a apresentação das pessoas
  • Demorou para começar ++++
  • Professor que passa exercício pra nota faltando 5 minutos pro Dojo ++++
  • Faltou tempo
  • Bug do Dojotools
  • Uso radical dos baby steps
  • Ausência de um pessoal ++
  • Comida desnecessária no horário
  • Não poder ver o código ser desenvolvido por inteiro +
  • Mosca imortal enchendo o saco
  • Não entendimento sobre discussões importantes

Como sugestões ficaram:

  • Fazer algum em PHP
  • Fazer algum em C
  • Melhorar a posição do piloto e copiloto

O Dojo foi bastante proveitoso, principalmente em função de duas discussões. A primeira foi fruto da ideai do Lucas de fazer a maioria dos Dojos nesse horário em Java pelo fato de a maioria dos que frequentam o Dojo nesse horário estarem aprendendo Java. Alguns participantes aprovaram e outros não. Enfim, como o Dojo é deles e para eles, eles ficaram de conversarem entre si e decidirem o que vão fazer. Esse fato por si só já é interessantíssimo.

Para não ser injusto com ninguém e nem tendencioso (afinal eu estava dentro da discussão com as minha opiniões) prefiro dizer somente qual foi o assunto da segunda discussão. Bem, a segunda discussão foi tocada em função do conceito de Baby Steps e de como ele funciona em conjunto com o TDD. O importante é que no final todos continuaram com a opinião de que de fato desenvolver software usando TDD e baby steps é altamente produtivo.

Até a próxima,

Bernardo Fontes


Primeiro DojoRio@Petrópolis (29/05)

domingo, 13 junho 2010

Um sábado após o PythonCampus em Petrópolis aconteceu o primeiro DojoRio@Petrópolis, o problema resolvido foi o FizzBuzz e depois dele como ainda tinha sobrado tempo tentamos resolver uma contagem regressiva, porém esse último não foi concluído.

Participantes:
César Frias
Luiz Bonsaver
Valdinei dos Santos
Joe Rabelo
Natasha Paiva
Alex Amaral
Bruno Lima
Rafael Santos
Fernanda Fontenelle
Rodrigo Cacilhas
Friedmann Gerber
Guilherme Gualberto

O que foi bom:
Bastante gente participando
A presença de pessoas sem conhecimento em Python

O que podemos melhorar:
Um teclado melhor
A participação de todos os presentes
Desenvolver um software que ao salvar o arquivo ele já rode os testes diretamente
Trazer novos desafios
Levar um lanche

Gostaria de agradecer a coordenação do IST, principalmente a Adriana Racco que ajudou bastante e liberou uma sala para o DojoRio@Petrópolis. Sábado dia 19 tem mais…


DojoRio@Niterói – 10/06/2010

sábado, 12 junho 2010

Galera,

Aconteceu nessa última quinta-feira mais uma sessão do DojoRio@Niterói. A sessão foi caracterizada pela heterogeneidade dos participantes. Estavam presentes professores, calouros do Curso de Ciência da Computação, veteranos, mestrandos, profissionais da área de TI, professores, historiadores e até a Luciana Cavalini que atua com o pessoal da Medicina no desenvolvimento do OSHIP.

O problema escolhido foi o do jogo de boliche. Dado uma lista de jogadas compostas por frames das jogadas individuais, tínhamos que retornar o total de pontos. A linguagem utilizada foi Ruby. A entrada foi definida como uma lista de listas e a saída um inteiro que representasse o total da pontuação. O spare era definido por um ‘/’ e o strike por um ‘x’.

O problema caminhou bem, mas o mais interessante foi o fato de o pessoal ter discutido bastante sobre questões sobre a modelagem do problema. Foi bem pensada a maneira de abordar o problema para não cairmos na armadilha clássica na computação de se fazer uma só função que acaba por ter N responsabilidades. Fizemos bastante uso de Orientação à Objetos levando em considerações questões como estado de um objeto e herança. Além disso, rolou uma explicação muito completa sobre o conceito de bloco e o uso dele em Ruby.

Haviam 24 presentes, sendo eles:

A review foi bastante proveitosa e tivemos como pontos positivos:

  • O Dojo continua cheio ++++++++
  • Bastante discussão +++
  • Ter sido em Ruby ++++++++++++
  • Explicação do conceito bloco em Ruby ++++++++
  • Ctrl + Z +++
  • Ambiente físico
  • Calouros participando dos dos Dojos
  • Problema interessante ++
  • Código em inglês
  • Arrumar um estágio pela participação no Dojo
  • Muita gente programou
  • Aprender as regras do boliche
  • Uso de orientação à objetos +
  • Comida +++++++++
  • Coca-cola
  • Refatoração
  • Pessoal que não vinha faz um tempo veio
  • Mas e quando…? Os novos estão começando a saber responder esta pergunta
  • Últimos 4 Dojos = 4 linguagens diferentes = poliglota
  • Aprendizado de convenções e culturas que envolvem a lingaugem
  • Gente nova +
  • 4 C’s (colaborar, compartilhar, comunidade e conhecimento)
  • Aprendizado usando a teoria dos jogos sem perceber
  • Aniversário do Dukão ++++++
  • Pessoal falando mais alto no computador
  • Paticipação da Luciana +
  • Matinhon deu as caras +
  • Mulherada mostrando como se programa
  • O nível da galera
  • Professores presentes +++
  • Informalidade
  • Muitas novidades

Os pontos a serem melhorados foram:

  • Migué do Martinhon +++
  • Bolo para o parabéns
  • Esquema de cores do Gedit
  • Faltou a apresentação inicial do pessoal
  • Abuso de Ctrl + Z
  • Faltou um mouse +
  • Cabeça cheia == código ruim
  • Ter que falar e ouvir as pessoas arrumando as coisas para fechar a sala
  • Computador dos outros dificulta por causa do teclado
  • Acanhamento dos professores +
  • Pessoas indo embora no meio da sessão
  • A entrada não estava clara
  • Ter sido em Ruby
  • Código em inglês
  • As regras do não foram 100% seguidas
  • Atrasos
  • Falatório da platéia +
  • Renata não ter programado ++
  • Ter que aprender a jogar boliche
  • Muito não programaram +
  • Algumas pessoas ficarem de espectadores
  • Ignorância em Ruby
  • Oliver não programou

Ficou como sugestão:

  • Rever o formato do Dojo para torná-lo mais compatível com o número de participantes
  • Definir o problema antes e escrever no quadro
  • Fazer um Dojo em C
  • Fazer um Dojo em PHP
  • Usar um computador mais “default”
  • Continuar fazendo Dojos em Ruby

Esse Dojo se caracterizou por ter sido um dos mais explicativos, digamos assim. Houve muita discussão teórica de boas práticas de programação, o que é essencial para essa garotada nova já começar com o passo certo. Mas, como o Dojo não acaba aí, depois ainda rolou uma MESA GIGANTE na nossa Cantareira que tinha de tudo, desde caipiras até um pessoal nerd programando um programa para sortear os times para um bolão. O fato de eu ter feito o programa (em Python, claro) e o Brasil ter ficado comigo são meras coincidências!

Até a próxima,

Bernardo Fontes


DojoRio@Niterói – 27/05/2010

sábado, 29 maio 2010

Galera,

Rolou nessa última quinta-feira mais um DojoRio@Niterói lá na nossa queria UFF. O Dojo contou novamente com a presença em massa dos calouros do curso e também com novos convidados de outros períodos. Foi uma sessão bem especial, não só por todas os calouros que estiveram presentes, mas também pelas reflexões que elas nos gerou. Para saber mais sobre isso, leia esse post do Vinícius Teles falando sobre o pensamento comum que pairou na cabeça da maioria depois dessa quinta-feira.

A única coisa que faltou o Vinícius dizer foi o fato de termos descoberto um Certfied Blaze Master no pessoal. Não vou citar nome para não deixar as pessoas constrangidas… Como o Vinícius já falou bastante de como foi a sessão e dos resultados que ela obteve, vou me restringir a listar os presentes em mais um recorde. Estavam presente essas 26 pessoas:

Como pontos positivos o pessoal citou:

  • A refatoração
  • O pessoal participando mais
  • Aprender novas linguagens
  • Aprimorar o raciocínio
  • Foi produtivo
  • Ter começando no horário
  • Aprendizado de novos conceitos e estrutura de dados
  • Terem levado comida
  • Vir com um problema já proposto
  • Testes te darem segurança para o desenvolvimento
  • Os calouros continuarem participando e os novos frequentadores
  • Ter sido em Javascript
  • A interface do Jsspec
  • A criação de mais um Dojo
  • A superlotação dos Dojos de Niterói e do Rio
  • Familiarizar-se com diferentes linguagens
  • Ganhar bons hábitos de programação
  • Ser 0800
  • Pessoas programando pela primeira vez no Dojo
  • Problema simples e real
  • Ter colocado o tempo para 4 minutos
  • Os aplausos após a refatoração
  • Muito debate
  • Oportunidade para os calouros
  • Usar o quadro de giz
  • A Luciana estar presente para tentar levar o Dojo para a Medicina
  • O ar condicionado

O que ficou para ser melhorado foi:

  • Falar mais alto quando estiver como piloto ou co-piloto
  • Várias mudanças no fluxo do raciocínio
  • Não deu para todos programarem
  • Muita conversa na platéia
  • Senhora Justen não programou
  • Não teve apresentação das pessoas
  • Dinâmica lenta
  • O tempo passar muito rápido
  • O horário
  • Cansaço de alguns
  • O plugin de completar as aspas, parênteses e chaves
  • Não adicionaram algumas pessoas ao grupo do DojoRio
  • Algumas pessoas não poderem ir ao pós-dojo
  • Por que não tive Dojo quando era calouro?
  • A comida distraiu o pessoal
  • Ter sobrado comida
  • Pessoal do canto retendo a comida
  • Faltou orientação a objetos
  • Arrumar mais cadeiras para a sala
  • Algumas pessoas que confirmaram que vinham e faltaram
  • As mesas no meio da sala
  • A separação da galera entre calouros de um lado e “veteranos” de outro
  • Perda de foco no final
  • Programar com o DojoTimer aberto
  • Ar condicionado esfriou muito
  • Uso do Javascript
  • O Henrique Bastos e sua empolgação não estavam presentes

Deixaram como sugestões:

  • Usar o Vi como próximo editor de texto
  • Usar Python novamente em um próximo Dojo
  • Fazer em uma linguagem nova
  • Fazer em alguma linguagem mais antiga como COBOL
  • Usar alguma coisa de banco de dados
  • Fazer mais publicidade do grupo
  • Conseguir uma sala maior
  • Fazer o código em inglês
  • Usar um mouse maior
  • Fazer algum Dojo em PHP
  • Fazer algum Dojo em Perl
  • Fazer algum Dojo em C

Vale a pena reparar que essa galera nova tem uma sede por conhecimento muito grande. Isso é notável pelo número de sugestões de linguagens e ideias para serem implementadas no próximo Dojo. Para os que não estão indo à UFF, estão perdendo uma pequena revolução que esses calouros estão fazendo. Sorte nossa poder ver isso de perto. Para quem quer ver o código, ele está nesse repositório do Github. Em breve coloco no repositório do DojoRio no GoogleCode.

Até a próxima,

Bernardo Fontes


DojoRio@Niterói – 20/05/2010

segunda-feira, 24 maio 2010

Galera,

Rolou nessa última quinta-feira mais uma sessão de Coding Dojo na UFF. Essa sessão foi muito interessante porque contou com a presença de vários calouros! Eles foram incentivados a participar do Dojo devido às apresentações que eu e o Andre Oliveira fizemos em uma das aulas deles para falar sobre o DojoRio, #horaextra, PythonCampus e tudo mais. Olha um vídeo que o Henrique Bastos fez de todo mundo:

Como tinha muita gente nova, o problema que nós escolhemos foi o do FizzBuzz. O problema andou bem e caímos em uma questão interessante em um momento. Foi proposta uma refatoração, mas quando ela começou a ser feita, começou de maneira confusa e, no final de tudo, acabamos “refatorando” e deixando o código da mesma maneira que estava antes da “refatoração”. Isso mostra que a refatoração não é algo que deve ser tratado como apenas uma “limpeza de código”. Ela deve ser tratada com cuidado para que a limpeza não venha a resultar só em bagunça. Afinal, de que adianta um quarto limpo, mas bagunçado?

Haviam 24 pessoas nessa sessão! Recorde! Segue a lista:

Os pontos positivos que o pessoal levantou foi:

  • Os calouros comparecerem em massa
  • A apresentação feita por cada um antes de começar
  • Sugestões diversas
  • Sutilezas na refatoração
  • O pessoal novo suando para resolver o problema
  • Muita gente!
  • A sala fixa
  • O pessoal falou alto para expor as ideias
  • O problema
  • O conhecimento compartilhado
  • Ter a chance de aprender uma linguagem nova
  • Ter sido em Python
  • Usar Python no ensino
  • Os “gurus” de Python ajudando
  • O pessoal das antigas é receptivo, engraçado e paciente
  • As opiniões dos mais experientes
  • O respeito dentro do grupo
  • Não ficar nervoso mesmo lá na frente
  • Desenvolver melhores técnicas para programar
  • O modo como o Dojo é feito ajuda no ensino de programação
  • Explicações iniciais muito boas
  • Resolver o problema
  • Usar TDD com Baby Steps
  • Várias pessoas programando
  • Pair Programming
  • Consegue-se aprender muito
  • Fandangos grátis
  • Vários calouros querem voltar!!!

Os pontos a serem melhorados foram:

  • Não deu para todos programarem
  • O horário é tarde
  • Podemos pedir uma pizza?
  • Faltou comida e bebida
  • O código ficou em português
  • O Fandangos rolando na mão da platéia atrapalhou
  • Mini-mouse
  • Usar como um tipo de semáforo (não usamos o dojotools)
  • Faltaram cadeiras
  • O tempo de 5 minutos ficou muito grande
  • Ficar um pouco perdido com o código
  • As mesas ficaram atrapalhando o caminho
  • Poderíamos ter feito mais 1 problema
  • Poderia ter sido mais rápido
  • Pitacos do Certified
  • Não ter café

Ficou de sugestão:

  • Voltar com o hábito de levar comida ao Dojo
  • Diminuir o tempo para 4 minutos
  • Fazer introduções sobre conceitos de programação
  • Os calouros participarem dos outros eventos
  • Continuar programando em Python para os iniciantes aprenderem mais
  • Fazer o próximo em Java
  • Fazer o próximo Pascal
  • Fazer o próximo Ruby

Vale a pena ressaltar que todas as sugestões de linguagens para serem usadas nas próximas sessões foram dadas pelos calouros. Então, temos um pessoal novo e com desejo de aprender novidades. Além disso, eles já estão se organizando para começarem um dojo deles. É esse o espírito galera!

Até a próxima quinta-feira,

Bernardo Fontes