(Dicas para aprender programação) |
“Não apenas jogue no seu celular. Crie um jogo”. A provocação foi feita pelo presidente americano Barack Obama, em 2013. Por meio de um vídeo, ele falava sobre como aprender a programar era importante para o futuro dos Estado Unidos . Pode parecer exagerado, mas diversos países hoje se movimentam para garantir que as novas gerações entendam linguagens de programação ou ao menos dominem os conceitos por trás do chamado “pensamento computacional”.
A mobilização, que envolve ações como a de incluir programação no currículo escolar básico, parte da premissa de que o presente e o futuro da sociedade passam necessariamente pelo digital. Programas de computador, aplicativos no celular e jogos eletrônicos executam tarefas, todas descritas em linguagem de programação. Saber se comunicar com máquinas e por meio delas é, nesse sentido, essencial. Ser fluente nesse novo idioma pode se tornar, por consequência, questão de sobrevivência.
No Brasil, aprender a programar ainda não é uma tarefa obrigatória nas escolas. Apesar disso, há diversas iniciativas abertas que permitem adentrar esse universo, instigando jovens e adultos a arriscarem suas primeiras linhas de código.
Para os interessados em dar os primeiros passos, reunimos abaixo uma série de dicas e opiniões de especialistas sobre o tema.
Para aprender códigos:
Antes de tudo, a lógica
Celulares e computadores são ferramentas “burras”. Como máquinas, são apenas cumpridoras de tarefas. Ensiná-las quais tarefas executar e como devem fazer isso é o desafio. As ordens devem ser dadas pelo programador como uma receita de bolo: por etapas, em uma certa sequência, livres de falhas, sem repetições desnecessárias, e garantindo que o objetivo seja atingido toda vez. Tal encadeamento segue, portanto, uma lógica. Para escrever logicamente, é preciso pensar da mesma maneira.
“Estimular crianças desde cedo a entender a logica de programação ajuda a melhorar o raciocínio lógico, auxilia na capacidade de solucionar problemas, estimula a criatividade e mostra a importância de fazer parcerias e compartilhar conhecimento”, diz Camilla Gomes, do MariaLab Hackerspace, um espaço para mulheres voltado para a criação de projetos de tecnologia em colaboração.
Marco Giroto é diretor da Escola SuperGeeks, que se propõe a ensinar programação por meio do desenvolvimento de games. Ele explica que exercitar a lógica, ou o “pensamento computacional”, pode ajudar crianças e adolescentes em outras disciplinas exatas.
“Programar dá muito problema, então você exercita a resolução de problema. E nisso você envolve um tanto de matemática; no caso de games, tem muito de física (para calcular efeito de vento, a gravidade, etc); e inglês, já que muitos termos são no idioma, bem como fóruns online de discussão de problemas.”
Há bastante material disponível sobre o tema na internet, inclusive cursos em plataformas gratuitas como Coursera e edX.
Brincar é uma opção
Para aprender, o lúdico pode ajudar. Com isso em mente a equipe do professor Mitchel Resnick, do MIT Media Lab, desenvolveu o Scratch. Pelo site, crianças e adolescentes podem criar pequenos jogos e animações encadeando blocos coloridos que funcionam como comandos. A ideia é ensinar os fundamentos da programação desde cedo, tornando o salto para o aprendizado de linguagens de programação mais suave no futuro.
O Scratch está baseado no conceito dos quatro “P”. Projeto: o aprendizado é feito durante a realização de algo significativo. Pares: o aprendizado é feito de forma colaborativa, em grupo. Paixão: quando o projeto envolve um tema querido por quem está aprendendo. ‘Play’: o aprendizado envolve elementos lúdicos. Quem explica é Tiago Maluta, analista de projetos da Fundação Lemann, apoiadores do Programaê e da Hora do Código.
Plataformas mais lúdicas e visuais, como o Scratch, Code.org, Code Combat e App Inventor dão, segundo o analista, um chão para quem quer aprender. “E o legal é que dá para trabalhar com crianças, adolescentes e adultos. A diferença é o tempo que cada um levaria nessa etapa do aprendizado antes de partir para uma linguagem de fato”, diz Maluta.
Para saber o caminho, tenha uma meta
Para saber o caminho, tenha uma meta
De todos os especialistas consultados pelo Nexo, ouvimos o mesmo: para saber o que aprender, tenha um objetivo. Isso porque as entradas possíveis para o aprendizado de programação são diversas, a começar pelo fato de que há várias linguagens para diferentes finalidades. Então antes de gastar os neurônios escolhendo uma linguagem, dedique seu tempo para definir o que você quer realizar.
Camilla Gomes, do MariaLab, diz que é importante pesquisar para entender todas as possibilidades para quem quiser seguir na área. “Você pode ser um programador front-end e criar o visual de sites, você pode ser programador back-end e criar toda a engenharia por trás dos sites, você pode ser programador de aplicativos de celulares, design de jogos, programas para desktops, etc. É importante conhecer para saber por qual caminho percorrer”, diz.
Francisco Isidro Massetto, conhecido apenas como Professor Isidro, é doutor em engenharia da computação pela USP e responsável por um canal no YouTube onde dá dicas de programação. Ele acredita que a definição de um objetivo ajuda a não desistir no meio do caminho.
O objetivo no caso da programação não precisa resultar necessariamente no aprendizado de uma língua específica. Tiago Maluta, da Fundação Lemann, lembra de outro conceito usado no MIT que compara o ato de “aprender a programar” e “programar para aprender”.
“O primeiro caso é quando você tem um objetivo especifico, como ‘entrar no mercado de trabalho’ e para isso aprende Java, por exemplo”, diz. “A outra, é a ideia de que aprendendo programação, você poderá atingir outros objetivos, usando aquele conhecimento para seu trabalho como biólogo, jornalista, professor, etc.”
Encontrando a sua língua
Definido o objetivo, descubra que linguagem é mais adequada e, principalmente, mais fácil para chegar ao fim da empreitada. Iana Chan, fundadora da PrograMaria, exemplifica: “Se alguém trabalha com sites e quer aprender a construí-los e modificá-los com autonomia, será mais interessante começar com as linguagens relacionadas a esse fim, como HTML, CSS e JavaScript”, diz.
Marco Giroto, da Escola SuperGeeks, costuma trabalhar linguagem Lua com seus alunos. “Ela foi criada na PUC do Rio de Janeiro e é muito usada no mundo dos games. Está, por exemplo, no Angry Birds, World of Warcraft, etc. É uma linguagem simples de aprender”, diz. Sua lista de línguas recomendadas inclui ainda Ruby (“os comandos usados são fáceis, é como se você estivesse falando”) e Python, muito comum em cursos introdutórios.
“O que muda é a sintaxe, mas os conceitos básicos de programação, como ‘looping’, condicionais, variáveis, etc, são os mesmos. Por isso, a primeira linguagem é sempre mais difícil. Mas depois, sabendo uma, para partir para outra é muito mais fácil.”
Como referência para a escolha, atualmente, as linguagens mais populares no GitHub (repositório de códigos, extremamente popular entre programadores) são JavaScript, Java, Python, CSS, PHP, Ruby e C++. Feita a escolha, há livros técnicos dedicados a elas e ainda plataformas de ensino gratuitas na internet como Codecademy, Khan Academy, edX e Coursera como cursos introdutórios e avançados sobre cada.
Experimente aprender ensinando
O processo de aprendizado varia muito entre as pessoas. Há quem estude melhor sozinho em casa, outros podem preferir estudar em grupo, outros dependem de um tutor cobrando resultados presencialmente. Qualquer que seja o seu caso, quando o assunto é programação, muitos recomendam a prática da colaboração para aprender, mas também ensinar – e, por consequência, aprender ainda mais ensinando.
“Como fomentadora da cultura hacker, eu sempre irei defender a interação entre pessoas e a formação de comunidades”, diz Camilla Gomes, do MariaLab. “Mesmo que a pessoa prefira aprender as coisas sozinha, é bom compartilhar o que aprendeu com as demais. Seja em hackerspaces ou através de redes sociais, fóruns e blogs.”
Felipe Fernandes é diretor do Code Club Brasil, organização que orienta a criação de clubes voltados ao ensino de programação para crianças. Para ele, “o que não pode é se privar do caminho seja ele qual for”, mas defende que o aprendizado em grupo e presencial “é mais divertido, como são os clubes”, onde é possível ser aluno, mas também professor voluntário. “Minha dica é que a melhor maneira de aprender é ensinando algo a alguém. E os clubes têm sido uma belíssima porta de entrada para pessoas que amam programação, mas por algum motivo não tiveram a oportunidade de seguir adiante nesta carreira.”
Se aprender sozinho parecer muito difícil e frequentar escolas não for uma opção, há na internet diversas comunidades de programação voltadas para a resolução de dúvidas.
“Geralmente, elas se organizam em torno de linguagens e frameworks, como Python, PHP, Ruby, Node.js, etc.”, diz Iana Chan, da PrograMaria. “Além disso, é possível encontrar esses grupos no Meetup, uma rede social que agrega comunidades e facilita a organização de encontros presenciais”, diz Chan, que ainda recomenda o popularíssimo fórum Stack Overflow, que tem uma versão em português.
Olhe o código alheio
Há diversos softwares, projetos de web e aplicativos que permitem ser olhados por dentro. Algo como ver um bolo pronto e ter ao lado a descrição de todos os ingredientes usados e das etapas percorridas. Essas criações, distribuídas de forma “aberta” ou “livre”, podem servir de referência para quem está aprendendo. Tais códigos podem ser copiados e alterados livremente – desde que mantidos sob a mesma licença. Quem defende a estratégia é Beatriz Teixeira, formadora de educadores no CDI (Comitê para Democratização da Informática).
“Abrir o código-fonte de sites é muito interessante. Você vê o texto e começa a enxergar padrões, pode tirar ideias, entender como fazer uma função específica, comparar com outros códigos e tirar suas conclusões”, opina. Para ter uma ideia do que é o código-fonte de um site, aperte a tecla F12 do teclado (Command + Shift + C no Mac).
Essa aproximação, no entanto, pode ser espinhosa. Marcos Giroto, da Escola SuperGeeks, evita fazer esse tipo de recomendação. “Estudar um código pronto é complicado porque diferentes pessoas podem fazer a mesma coisa escrevendo de forma diferente. Olhar para um bom código, enxuto, pode ser útil. Mas há sempre um grande risco de quem está começando a se deparar com coisa mal feita e aprender errado”, diz.
Programe com objetos palpáveis
Além do uso de plataformas de programação visual, como é o caso do Scratch, há uma série de dispositivos eletrônicos que ajudam a incorporar noções de lógica e programação, além de robótica e automação, por meio de abordagens pouco clássicas. É o caso dos blocos-botões do Project Bloks (Google) e dos controles Makey Makey.
Com os “bloks”, por exemplo, é possível encadear botões com funções diferentes (ligar/desligar, aumentar/diminuir, repetir, andar em certa direção) e, por meio deles, controlar lâmpadas, robôs, caixas de som. “É difícil ensinar programação para crianças usando instrumentos criados para adultos, como telas e mouses”, disse o brasileiro João Wilbert, envolvido com o projeto no Google, ao jornal “Estado de São Paulo”. “Os blocos podem levar a criança a um aprendizado lúdico de conceitos complexos de serem explicados na tela.”
Há ainda plataformas eletrônicas (espécies de microcomputadores), como o Raspberry Pi e o Arduino, que promovem a interação entre software (código) e hardware (máquina) em um nível mais avançado, mas muito popular em espaços “maker”.
“São boas portas de entrada para quem não tem ideia do que é programar justamente porque são experiências mais palpáveis”, diz Iana Chan, da PrograMaria. “O Arduino, por exemplo, pode ser bem legal porque dá para criar projetos que interagem com o meio físico de modo bem prático e instigante, como um dispositivo que alimenta automaticamente seus pets ou que rega suas plantas com base em dados coletados por um sensor de umidade.”
Prepare-se para errar
Por fim, saiba que aprender a programação pode ser frustrante. O motivo é a garantia de que códigos sempre terão algum erro. Em uma escola inglesa, crianças aprendendo a programar (por meio de Raspberry Pi) reclamavam: “Eu precisei refazer 20 vezes”, disse uma; “tivemos que refazer cinco vezes e foi muito irritante”, disse outra. O erro na programação, no entanto, não é privilégio de quem está aprendendo.
“Existe o mito de que a pessoa que programa é um ser de outro mundo que chega de manhã, abre o editor de códigos e simplesmente faz um ‘download mental’ de códigos prontos e irretocáveis”, diz Chan. “A verdade é que programar envolve errar – e muito.” A jornalista, criadora da PrograMaria, lembra uma frase comum entre programadores, a de que “se um código funcionou de primeira é porque tem alguma coisa errada”.
A recomendação para diminuir a quantidade de erros e, sobretudo, saber identificar onde eles estão toda vez que surgirem é estudar e se atualizar sempre.
“Muitos comparam a aprendizagem de programação com a de uma nova língua. Assim como quando aprendemos uma nova língua, precisamos de muita prática e repetição, de nada adianta aprender conceitos, se você não praticar e aplicar o conhecimento adquirido”, diz Chan. “Por isso ter um projeto, mesmo que simples, pode ser um aliado valioso para quem está começando.”
Para Marcos Giroto, da SuperGeeks, aprender a programar envolve muita dedicação e tempo. “Toda tecnologia está atrelada a outra. Para fazer um aplicativo, tem que programar a mecânica, a parte visual, o banco de dados. São muitas coisas e que mudam a todo momento. É preciso estudar sempre, aprofundar-se em uma linguagem e saber de outras que podem te ajudar.”
Fonte: Nexo