O documento conta a história de Bernardo, um menino apaixonado por games que sonhava em ser programador. Ao cursar Ciência da Computação, Bernardo se decepcionou ao ver que o curso não o preparava para seu sonho. Anos depois, desmotivado, Bernardo acabou abandonando a programação e seguindo outra carreira. O documento argumenta que o ensino de computação deve equilibrar teoria e prática, individual e social, para evitar que mais pessoas como Bernardo desistam de seus sonhos.
12. Pascal?
No quadro negro?
#wtf
Entretanto, já no primeiro período, Bernardo teve uma grande e desagradável surpresa.
13. Frustração
Surpresa que se repetiu nos períodos seguintes onde ele estudou muita coisa sem conseguir compreender
como isso o levaria a realizar seu sonho...
15. Estágio numa
Consultoria Multinacional
Sem uma visão clara das coisas, a vida foi se arrastando, e para orgulho de sua Família, Bernardo conseguiu
seu primeiro trabalho. Quem sabe uma atividade profissional poderia responder suas perguntas?
16. Analista de
Documentação
Junior
#wtf
As coisas iam bem no trabalho e Bernardo recebeu sua primeira promoção após cursar 7 períodos de Ciência da
Computação.
17. Com o tempo, o sonho do Bernardo foi minguando... Com uma carreira para cuidar, lentamente, seu sonho se
desfez corrompido em sua memória.
18. Por que existem tantos
Bernardos?
Essa já seria uma história triste se houvesse apenas 1 Bernardo. Mas existem vários! Por quê?
19. O ensino de
computação também é
Waterfall
Sofremos de um problema crônico: Big Education Upfront! A preparação para o mercado ganha de goleada da
preparação para a vida.
20. “Arte e Ciência
são duas faces da
mesma moeda.”
-- Donald Knuth
Mas não foi sempre assim... Mais de 30 anos atrás, os grandes mestres e pais da computação já alertavam para
esse (d)efeito.
21. Prática e Teoria
são duas faces da
mesma moeda.
Se preocupavam com a temida dissociação entre Prática e Teoria.
23. Jean Piaget
Sobre o processo de formação do conhecimento, Jean Piaget realizou muitos estudos.
24. O conhecimento ocorre pela
interação entre sujeito e objeto
E com esta afirmação, concluiu que a única forma de um alguém conhecer o que é um choque, é colocando o
dedo na tomada.
25. Percepção de
Progresso
E uma cadeia subsequente de interações, gera a experiência fundamental do aprendizado: A Percepção de
Progresso.
27. Dojorio
+
ForkinRio
Bem, aqui no Rio de Janeiro temos experimentado com muito sucesso a dupla Dojorio + ForkinRio.
28. Social
+
Individual
O Dojorio e o ForkinRio, trabalham Teoria e Prática nas duas condições fundamentais do ser humano: Social e
Individual.
29. O Dojo é uma experiência social onde os participantes exercitam suas habilidades de comunicação, enquanto
praticam importantes técnicas de desenvolvimento de software como: TDD, OO, Modelagem, Babysteps e
Programação em Par.
30. Pré-requisitos
1 sala
1 computador
1 projetor
Rango!
Para uma sessão de Dojo, basta reunir um grupo de pessoas em uma sala com projetor e um computador. É
importante que a turma leve comida para a reunião. Isso estabelece o tom informal além de estimular o
compartilhamento.
31. Preparação
• Alguém propõe um problema lúdico
• O grupo decide uma estratégia inicial
• O grupo define os papeis iniciais...
Então o grupo escolhe um problema simples, lúdico, para focar no processo ao invés de promover uma
competição pela solução do problema. Já os papeis, durante o Dojorio, são 3: Piloto, Co-piloto e Plateia.
32. Piloto e Co-piloto
O Piloto é quem implementa os testes e o código (nesta ordem). É ele quem interage com o teclado. Ao seu
lado, o Co-piloto ajuda o Piloto, mas sem mexer no teclado.
33. Platéia
Enquanto isso a Platéia ouve atentamente em silêncio enquanto houver um teste quebrado, oferecendo espaço
para o Piloto interagir com o código, livremente durante seu turno.
34. Papeis mudam a cada
turno
A cada 4 ou 5 minutos (como o grupo definir), os papeis mudam. O Piloto volta para a Platéia, o Co-piloto vira
Piloto e alguém da Platéia vira Co-piloto. Idealmente, em uma sessão, todos os participantes passam por todos
os papeis.
35. Processo
Vermelho
Verde
Refatoração
A sessão evolui seguindo ciclicamente as 3 etapas: Vermelho, Verde, Refatoração.
36. Vermelho
• Piloto escreve o teste e o código.
• Co-piloto ajuda o piloto.
• Plateia observa em silêncio.
O Piloto escreve um teste que corresponda ao próximo babystep na evolução do problema. Em seguida implementa o
código mais simples que faça o teste passar. É importante não copiar e colar, e o silêncio da Platéia oferece espaço para o
Piloto aprender.
37. Verde
• Teste passando!
• Hora de todos participarem
sugerindo melhorias.
Agora os testes estão passando. Sinal que o código atende às necessidades dos testes. Hora de todos
opinarem e sugerir como melhorar.
38. Refatoração
“Organizar o código
como se o próximo programador
fosse um psicopata
que sabe onde você mora.”
Esse é o ápice da iteração do Dojorio! Devemos passar para um próximo teste, apenas quando as sugestões de
refatoração estiveram concluídas.
39. Retrospectiva
No final da sessão, que normalmente dura entre 90 e 120 minutos, fazemos uma retrospectiva onde cada
participante pode expressar o que foi bom e o que pode melhorar.
40. Prática ➔ Teoria ➔ Prática
O grande segredo do Dojo é unir iterativamente Prática e Teoria. Durante todo o processo, dúvidas sobre a linguagem,
sobre as técnicas e até sobre o ambiente de desenvolvimento surgirão, promovendo discussões fantásticas entre os
participantes.
41. Percepção de
Progresso
E o mais importante é que coletivamente, todos têm a todo tempo a percepção de progresso.
42. O ForkinRio é uma reunião com objetivo de promover um ambiente para que cada indivíduo possa aprender no
seu rítmo, sobre um assunto de interesse comum.
43. ForkinRio
Começa com o grupo elegendo um tema e um material didático que será usado por todos em subsenquentes
encontros.
44. Preparação
O que estudaremos?
O que implementaremos?
Com base no material, o grupo escolhe o que estudar no período até o próximo encontro e define um desafio de implementação
diretamente relacionado com a parte estudada. Se for um capítulo de um livro, o desafio pode ser implementar os exercícios deste
capítulo.
45. Fork!
Então o grupo faz o fork, ou seja, se separa para que cada pessoa possa, sozinha, estudar e implementar o
desafio até a data do próximo encontro.
46. Merge
Na data marcada, o grupo parte para o merge. Todos se reúnem trazendo consigo suas implementações e
opiniões sobre a experiência vivida.
47. DIFF
Todos lêem juntos e ordenadamente o código de cada um. Os códigos servem como índice para lembrar das
experiências no período de estudo. Neste momento, questões emergem levando o grupo a explorar os detalhes
e nuances do tema.
48. Prática ➔ Teoria ➔ Prática
Novamente, Prática puxa Teoria em ciclos sucessivos durante o aprendizado individual.
49. Percepção de
Progresso
E finalmente, durante os encontros, a exploração do tema pelo grupo promove uma intensa percepção de
progresso.