Requisitos funcionais e Não Funcionais
em 10 de Dezembro de 2020
Todo mundo que nasceu nos anos 90 viveu uma vida completamente diferente até os 10 anos de idade. Nessa época (ao menos no Brasil) a tecnologia ainda estava engatinhando e a revolução tecnológica que vivemos estava ainda em seu início. A conexão com a internet ainda era discada e os serviços disponíveis online eram minoria. Quem viveu a época das Lan Houses sabe bem como foi fazer trabalhos escolares, conversar no MSN, ICQ e entrar no Orkut.
Porém, esse post não é sobre isso.
Recentemente, comecei a ensinar um menino de 12 anos a programar a pedido do seu pai. Quando recebi esse pedido imaginei que seria uma experiência interessante, visto que nunca havia ensinado uma criança a programar. Na primeira aula, Gabriel já mostrava um grande interesse pela área da criação de Games e também disse que era fã de Minecraft. Apesar de eu não saber nada sobre desenvolver jogos, disse a ele que para produzir Games era necessário saber programação. Assim, o Gabriel aceitou o desafio e a jornada começou.
Comecei a ensinar Python e lógica de programação passando por todos os conceitos básicos (ifelse, while, for, vetores, matrizes, funções). Quando percebi que o Gabriel já havia dominado esses conceitos, senti a necessidade de introduzir algo mais visual para as aulas. Então, ensinei a sintaxe básica do Java para ele e começamos a desenvolver um sistema usando Swing. Em pouquíssimo tempo o Gabriel já conseguiu desenvolver sua própria lojinha de produtos gamers usando Swing. Nesse momento, cresceu a necessidade de compreender como armazenar dados em bancos de dados, então, ensinei como modelar, criar, manipular um banco de dados MySQL.
Em paralelo a tudo isso, o Gabriel começou aprender HTML e CSS em sua escola e implementou SOZINHO a lojinha de games usando HTML e CSS. Por fim, percebi que era a hora de começar a ensinar PHP para ajudá-lo a construir seu projeto.
Nessa jornada de 4 meses de aprendizado em velocidade INSANA, percebi algumas características dessa nova geração:
Uma das coisas que mais me impressiona ao dar aula para o Gabriel é que ele consegue facilmente adaptar tudo que ele aprendeu para um contexto completamente diferente. Por exemplo, ao aprender orientação a objetos ele é capaz de aplicar esse conceito para o contexto do seu projeto e imaginar como isso pode ser útil.
Em muitos momentos eu provoco o Gabriel perguntando: "pensando naquele conceito que eu te ensinei, como aquilo pode ser útil aqui?". Em praticamente 100% das vezes ele consegue adaptar o conceito e acertar na mosca aquilo que deveria ser feito.
O Gabriel possui uma rotina corrida de atividades, porém, ele me manda mensagens perguntando coisas sobre programação e também frequentemente me mostra coisas que ele fez sozinho. Esse interesse de procurar soluções e implementá-las é essencial para que o aprendizado passe para um outro nível.
Em verdade, meu objetivo é apenas dar um empurrão, visto que todo o resto ele já é capaz de fazer sozinho.
Necessidade de adaptação de conceitos para a idade da criança
Apesar de muitos pontos positivos, crianças ainda são crianças. Muitas vezes na universidade os professores adoram colocar alunos de programação para resolver fórmulas de Baskara, números primos, fatoriais, matrizes, derivadas. Porém, é preciso lembrar que o Gabriel apesar de ter uma mente muito evoluída, ainda é uma criança e não teve contato com muitos conceitos. Nesse momento, ele pode compreender o que são juros compostos, operações básicas de matemática e até expressões mais complexas. Porém, não podemos apresentar um conceito da engenharia eletrônica e esperar que ele compreenda o que deve ser feito.
Sendo assim, é importante trazer tudo que ele está aprendendo para o contexto da vida dele. O seu interesse por games trouxe a vontade de criar um website que contém indicações de jogos legais para seus amigos. Esse website vem sendo pensado há bastante tempo e modelado de acordo com o que ele imagina que seja um site legal. Criar esse projeto e poder compartilhar isso com as pessoas do seu meio torna a experiência muito mais fantástica.