Programação se aprende de maneira prática. Espere, não seja radical
ao ponto de jogar fora todos os livros e materais sobre programação que
você possui. Não leve a sério minha colocação se não quiser. Porém, a
questão que quero levantar é esta: aprenda a programar programando.
O que dizer sobre acadêmicos que, mesmo após estarem formados em
cursos superiores de Computação, não dominam a arte de programar, ou em
casos melhores, não estão preparados para serem os programadores com as
habilidades esperadas pelo mercado de trabalho. O mercado exige demais
ou as instituições de ensino não nivelam nossos acadêmicos de maneira
satisfatória?
Se você já participou de aulas de programação onde papel, caneta,
quadro-negro e saliva eram as ferramentas didáticas aplicadas, então
reflita e conclua sobre os resultados de tal modelo de ensino. Não pense
que o problema é o professor. Embora possam existir maus professores, o
problema ao qual me refiro está relacionado ao método de ensino.
O bom professor deve possuir o conhecimento necessário e conduzir a
aula de forma produtiva, cujo resultado seja aprendizado. Sugiro que se
trabalhe com novas maneiras de ensinar e aprender programação. Há espaço
para inovação dentro da sala de aula.
Existem vários grupos no Brasil, muitos ligados a universidades, que praticam o Coding Dojo.
Trata-se de um encontro de pessoas com o intuito de resolver um desafio
de programação. Não há competição. Todos trabalham com o mesmo
objetivo: encontrar uma solução para o problema de programação proposto.
Para realizar um Coding Dojo alguns princípios devem ser respeitados:
- O desenvolvimento deve ser orientado por testes. Portanto,
antes de começar qualquer coisa deve ser elaborado um plano de testes
que indicará quando uma solução foi encontrada, isto é, quando o plano
testes for executado com sucesso. - A evolução dos trabalhos deve se dar através de “passos de bebê”,
onde são realizadas pequenas implementações de cada vez, seguidas pelos
respectivos testes. As implementações posteriores devem ser iniciadas
somente quando o sucesso dos testes é alcançado para o trabalho atual. - A programação deve acontecer em pares. Cada dupla é formada por um piloto e um co-piloto
e tem, normalmente, de 5 a 10 minutos para realizar sua implementação
visando ao sucesso na aplicação do roteiro de teste. Somente o piloto
digita. Após esgotar-se o tempo, o co-piloto assume a posição do piloto,
que volta à plateia, e a posição do co-piloto é ocupada por um outro
participante. - Todos os participantes devem sempre entender o que está sendo
feito. Há uma interação constante entre os pilotos e os demais
participantes da plateia. Entretanto, em alguns momentos, deve haver
silêncio para que a dupla de programadores possa desenvolver seu
raciocínio. - Após ter sido encontrada uma solução para um caso de teste, o grupo
deve analisar e apresentar sugestões para melhoria do código
implementado, processo conhecido como refatoração. - Ao término dos trabalhos o grupo deve refletir sobre o que foi bom e
o que foi ruim. O que foi aprendido? É o momento de realizar uma retrospectiva.
É uma dinâmica bastante interessante, onde são exercitadas além das
habilidades técnicas, o relacionamento interpessoal e o senso de equipe.
Um tanto alinhado com o cotidiano das empresas, onde é preciso saber
fazer junto, trabalhar em grupo em busca do mesmo resultado. Isto
também faz parte da formação profissional e deve ser visto com bons
olhos nas universidades e até mesmo no ambientem empresarial.