A programação é o momento. De uns anos para cá, cada vez mais essa habilidade foi sendo reconhecida como essencial para qualquer pessoa que está entrando, vai entrar ou quer reinserir-se no mercado de trabalho. Porém, aprender a programar pode não ser uma tarefa simples. Pensando nessas dificuldades, neste texto vamos apresentar alguns jogos para iniciantes aprenderem a programar, pois até mesmo isso de uma forma lúdica poderá ficar muito mais fácil!
Abaixo, você entenderá as dificuldades que programar traz, as vantagens em se aprender programação jogando, quais jogos são indicados para isso e o que fazer para dar os próximos passos. Confira:
- Quais as principais dificuldades de aprender a programar?
- Quais as vantagens de aprender a programar jogando?
- Quais os 10 melhores jogos para iniciantes aprenderem a programar?
- Vale a pena aprender a programar?
- Qual o próximo passo? 3 dicas para continuar aprendendo a programar!
Boa leitura!
Quais as principais dificuldades de aprender a programar?
A atividade de programação como conhecemos atualmente é muito recente. As principais linguagens de alto nível foram se desenvolvendo junto com a capacidade dos computadores desde as décadas de 80 e 90, aproximadamente. Por conta dessa pouca idade, as dificuldades que uma pessoa iniciante na área pode encontrar são diversas e poderão depender de inúmeros fatores. Vamos pontuar algumas abaixo:
1. Questão geracional
Atualmente, várias gerações diferentes coexistem na mesma sociedade. Ao mesmo tempo temos pessoas com mais de 40 anos que viram o nascimento da internet e sua implementação no mundo todo e pessoas com menos de 20 que já nasceram em uma realidade completamente conectada, nativas da internet.
Essas pessoas, que conseguem se lembrar de uma vida antes da internet existir e não se desenvolveram nesse contexto, terão uma dificuldade muito maior em entender a programação como um todo do que alguém cuja realidade é essa desde o momento de seu nascimento.
2. Julgamentos prévios
A área de TI se consolidou como parte integrante do campo de conhecimento comumente chamado de “Exatas”, no qual se encontram outras ciências como Química, Matemática, Física, etc. Isso se deve especialmente pela proximidade da matéria com a lógica e a presença de alguns conceitos matemáticos na sua aplicação.
Por conta disso, uma pessoa pode erroneamente pensar que não é capaz de aprender a programar por “não ter facilidade” com essa área do conhecimento. Logo, um dos maiores desafios que alguém pode precisar superar é esse julgamento prévio de que programação é difícil por conta desses fatos.
Na realidade, aprender a programar é muito mais sobre aprender a aplicar de maneira prática essa lógica matemática que muitas vezes nos é apresentada de maneira completamente abstrata. Então, é o exato oposto: praticar programação pode fazer com que a gente desenvolva habilidades importantes para a compreensão das Ciências Exatas.
3. Conceitos básicos abstratos e complexos
Dentro da Ciência da Computação, todos os conceitos estão — de maneira mais direta ou indireta — interligados. Então, a programação em um nível esbarra em outras áreas como o funcionamento das partes físicas do computador e na comunicação entre hardwares softwares, por exemplo. O grande ponto é que praticamente nenhum desses conceitos são realmente visíveis ou palpáveis.
Isso pode ser uma dificuldade pois exige que haja uma abstração de quem está aprendendo, e isso nem sempre é fácil. Por exemplo, as próprias linguagens de programação de alto nível (chamamos assim aquelas que mais se aproximam da nossa linguagem humana) realizam vários processos por baixo dos panos para garantir essa nossa comunicação com a máquina.
O “plot twist” é que, na realidade, você não precisa saber disso tudo, especialmente se você deseja aprender a programar somente por hobby ou para aprender uma nova habilidade. Há áreas que sim, é necessário entender a fundo o funcionamento do computador, de servidores, de conexões e redes, mas na maioria das vezes alguém já desenvolveu uma ferramenta que facilita isso para você, exatamente para você não precisar “quebrar a cabeça” para isso.
Porém, deixamos aqui a recomendação de que você tente aprender e compreender, pois isso fará com que você tenha um conhecimento mais completo da área. A dica é começar pela história da computação e entender como o computador que conhecemos hoje foi evoluindo ao longo da história.
4. Lógica de programação
Veja bem, todas as linguagens de programação têm blocos de código pronto que você pode encontrar na internet. Sendo assim, é possível dizer que é possível programar sem ter nem um pingo de conhecimento em programação. Mas você não quer isso, não é mesmo?
A lógica de programação é a habilidade central que faz com que você consiga construir soluções em qualquer linguagem de programação. Ela é a forma como você pensa e desenvolve algo. Então, aprender lógica de programação é mais de meio caminho andado para dominar a programação. Só que não é fácil desenvolvê-la, sendo essa uma das maiores e mais paralisantes dificuldades da maioria das pessoas que querem aprender a programar.
E é aí que os jogos entram, já que eles ajudam você a desenvolver essa habilidade!
Quais as vantagens de aprender a programar jogando?
A gamificação (a técnica de tornar algo que normalmente não seria “jogável” em uma atividade lúdica e prazerosa) traz benefícios para o aprendizagem de qualquer campo. E a programação não é isenta disso! Vamos conhecer abaixo as vantagens de aprender programação jogando!
- É mais fácil traduzir a lógica de programação para objetivos dentro do contexto de um jogo;
- Conceitos mais complexos e abstratos podem ser introduzidos de maneira simples e completamente ilustrada;
- Jogar dá um sentido para a aprendizagem, com um nível crescente de dificuldade;
- Ao mesmo tempo em que é possível compreender conceitos de programação, os jogos estimulam a criatividade;
- Além de ajudar com o raciocínio lógico, jogar ainda desenvolve outras habilidades importantes para a programação, como a rápida tomada de decisão, o foco e a memória visual.
- Não importa a sua idade. Seja você criança, adolescente, adulto ou pessoa idosa, jogar sempre será uma forma fácil de aprender!
Quais os 10 melhores jogos para iniciantes aprenderem a programar?
Confira abaixo uma seleção realizada por nós dos 10 jogos mais indicados para pessoas iniciantes serem introduzidas no mundo da programação.
1. Human Resource Machine
Human Resource Machine é, sem dúvidas nenhuma, a primeira indicação de nossa lista. De todos os jogos, ele é o que melhor encontra uma forma de introduzir lógica de programação pura em um enredo cômico e envolvente. Os desafios são bem pensados e desafiadores, o que encanta até mesmo pessoas que não têm tanto interesse na área.
Você encarna uma pessoa funcionária de uma empresa super tradicional. Cada fase é um andar na sua ascensão ao topo (no formato de botões de elevador) e apresenta um desafio diferente. O objetivo? Pegar dados numéricos que entram, manipulá-los e retornar da forma como solicitado. Isso é, no fundo, o que todo programa faz. O jogo foi baseado na linguagem de programação Assembly.
Para isso, você conta com algumas funções que darão ordens ao seu personagem. Essas são exatamente iguais a operadores lógicos e matemáticos em algumas linguagens de programação, tais quais:
- Inbox: pega um número da caixa
- Outbox: leva um número para saída;
- Add: adiciona uma unidade no número indicado;
- Jump: pula para outra parte do itinerário (podendo, assim, criar loops)
Cada andar é mais difícil que o anterior e, ao decorrer do jogo, novas vertentes se abrem com desafios ainda mais complexos para quem desejar.
O jogo pode ser adquirido nas principais lojas de aplicativo para dispositivos móveis, para alguns consoles como Nintendo Switch e para PC no site da Steam.
2. 7 Billion Humans
Assim que você terminar “Human Resource Machine”, você pode seguir diretamente para a continuação da saga em “7 Billion Humans”! Nessa sequência, em vez de utilizar a linguagem de programação introduzida no primeiro jogo baseada em Assembly, você utilizará uma linguagem completamente nova, com diferentes mecânicas. Porém, tem uma reviravolta: você deve fazer isso com mais pessoas, simultaneamente!
Logo, você deve construir códigos pautados em blocos prontos para automatizar uma multidão de pessoas em direção a um determinado objetivo. Como pode parecer, o jogo é um pouco mais complexo que o primeiro, logo, a indicação é que “Human Resource Machine” seja jogado antes.
O jogo também está disponível para dispositivos móveis em diversas lojas de aplicativos, para consoles como Nintendo Switch e para PC, no site da Steam.
3. Scratch
Scratch não é exatamente um jogo, mas pode se comportar como um! O projeto do MIT — até mesmo utilizado nas aulas de introdução à Ciência da Computação em Harvard — é um jogo ao estilo sandbox (caixa-de-areia, como Minecraft) em que você pode fazer literalmente qualquer coisa! É possível até mesmo criar jogos simples.
O interessante do Scratch é que os blocos são organizados por cor a depender do que eles fazem e têm formatos anatômicos específicos para indicar que tipo de bloco se encaixa abaixo, tornando tudo bastante intuitivo. Você ainda pode importar sprites ou customizar os seus próprios na ferramenta, para além de adicionar música e efeitos sonoros.
O Scratch ainda conta com uma comunidade na qual você pode postar seu projeto para que as pessoas visualizem, curtem e comentem. Então, você pode se inspirar na criação de outras pessoas para fazer seu próprio Scratch!
4. CodeCombat
Em CodeCombat, você viverá uma aventura em masmorras aprendendo programação para fazer seu personagem se movimentar! O jogo permite que você crie uma conta gratuita para salvar seu progresso enquanto você avança no jogo.
Você pode jogar a partir de linguagens de programação diversas como Python (a linguagem padrão do jogo), JavaScript, CoffeeScript, Lua, C++ e Java.
Com o decorrer do jogo, você ainda poderá equipar itens e ainda personalizar seu herói ou heroína! Além disso, a progressão é bastante lenta, então qualquer pessoa de qualquer idade consegue acompanhar o ritmo sem se perder no meio do caminho!
Um jogo muito bem feito e interativo, em Português-BR, que torna a tarefa de programar muito mais simples! O lado negativo é que o jogo completo não é gratuito. Para tornar-se Premium, você deve pagar uma taxa mensal.
5. SQL Murder Mystery
Esse jogo é um prato cheio para as pessoas gamers que curtem jogos mais retrô como, por exemplo, “Where in the world is Carmen Sandiego”, no qual você deve incorporar uma pessoa investigadora atrás de uma pessoa acusada de homicídio.
A única diferença entre esse jogo e os demais é que a resposta está em algum lugar em meio a um enorme banco de dados. A solução? Somente é acessível a partir da Structured Query Language, ou SQL, uma linguagem de consulta criada especificamente para banco de dados estruturados.
Esse jogo é perfeito para as pessoas que estão estudando a linguagem, já que reforça componentes-base na prática. O melhor de tudo é que você não precisa ter conhecimento na linguagem! Aqui, testamos o jogo com uma pessoa que não tinha conhecimento algum da linguagem e, em menos de uma hora, ela conseguiu achar a pessoa culpada usando SQL!
Caso você tenha interesse em provar e já conhece o básico de SQL, você pode ir diretamente para esse link, onde lhe será indicado o que deve ser feito.
Caso você não tenha nenhum conhecimento em SQL e queira aprender fazendo, eles possuem uma página passo-a-passo, ensinando os básicos da linguagem.
A Trybe também tem um tutorial completo sobre os comandos básicos do SQL que você pode conferir antes de tentar resolver o mistério.
O único ponto negativo do jogo é que ele está completamente em inglês. Então, para as pessoas que não possuem conhecimentos sólidos na língua estrangeira, você deverá utilizar um tradutor de sua escolha.
6. CSS Diner
CSS Diner é um jogo bem básico focado em ensinar como se dá a seleção de itens a partir da linguagem de estilização CSS. Para isso, é fornecida uma mesa de jantar com itens em cima. Ao lado, há um breve tutorial com exemplos do que ser feito. O objetivo é selecionar os objetos solicitados usando os comandos disponibilizados, escrevendo-os no editor branco.
O jogo é excelente para aprofundar os conhecimentos em HTML e CSS para as pessoas que estão começando, por exemplo, uma carreira em desenvolvimento web. O jogo também está em inglês, mas a linguagem utilizada é simples e bastante objetiva.
7. Flexbox Froggy
Flexbox Froggy é outro jogo para ensinar CSS. Dessa vez, o tema selecionado é o tão desafiador CSS Flexbox. Esse simpático joguinho apresenta sapos coloridos que devem ser encaixados nas vitórias-régias correspondentes a suas cores.
No entanto, a única forma de fazer isso é introduzindo códigos CSS. Após as 24 fases disponíveis, é bem possível que qualquer pessoa domine essa prática da linguagem de estilização.
8. Grid Garden
Das mesmas pessoas criadoras de Flexbox Froggy, Grid Garden é outro jogo focado na aprendizagem de CSS, porém, pensado para CSS Grid.
Nesse jogo, o objetivo é levar água até os vegetais ou veneno até as ervas-daninhas utilizando comandos de Grid na linguagem CSS. O jogo é excelente para ensinar essa função — já que começa bem devagar e, depois, vai se tornando mais complexo à medida que você vai avançando —, mas também pode ser utilizado para fixar os conhecimentos já aprendidos até então!
9. Elevator Saga
Elevator Saga é um jogo desenvolvido para ajudar pessoas iniciantes a aperfeiçoarem suas habilidades na linguagem de programação JavaScript. O objetivo do jogo é utilizar um código pré-pronto para programar o funcionamento de um elevador. A cada nível, novos desafios são introduzidos, forçando a pessoa a pensar de maneira criativa e estratégica para melhorar seu código.
10. Untrusted
Untrusted, dos jogos apresentados aqui, é o que mais vai exigir conhecimento em programação. Untrusted é um jogo de aventura bem simples e minimalista, com visual baseado em ASCII feito com caracteres, na qual você precisa editar um código em Javascript para seguir com a história.
Vale a pena aprender a programar?
Com toda certeza.
Mesmo se você for uma pessoa que é de uma outra área profissional, a habilidade de programar pode ser muito vantajosa. Aprender a programar desenvolve o raciocínio lógico e o foco, além de permitir que sua relação com computadores seja ainda mais especializada.
Além disso, saber programar permite que você possa criar suas próprias soluções para lhe auxiliar no dia-a-dia da sua profissão. Por exemplo, se você trabalha com design gráfico, saber HTML, CSS e JavaScript permitirá que você crie aplicações para web dinâmicas o que abrirá ainda mais possibilidades de trabalho.
Agora, se você quer aprender a programar para uma possível mudança de carreira, essa habilidade é o pontapé inicial para diversas carreiras da área de TI, muitas bastante promissoras nos próximos anos.
Afinal de contas, programação é a habilidade do futuro. Escolas no mundo todo já estão introduzindo aulas de programação em sua grade curricular desde cedo. Logo, é bem possível que no futuro grande parte do mercado de trabalho já tenha programação como parte de seu repertório profissional.
Qual o próximo passo? 3 dicas para continuar aprendendo a programar!
Apesar de jogar ser uma forma bem dinâmica de se introduzir no mundo da programação ou de reforçar conhecimentos básicos, somente jogar não vai garantir que você domine completamente a habilidade de programar. Para isso, você precisará de reforço, tanto teórico como prático.
Abaixo, deixamos algumas dicas de como continuar e expandir seu conhecimento nessa área.
1. Buscar fundamentação teórica
Jogando você vai colocar em prática vários conceitos utilizados em diversas linguagens de programação. No entanto, se você depois não fundamentá-las na teoria, você não entenderá a razão pela qual os está utilizando.
Uma boa ideia é conferir a documentação da sua linguagem de programação escolhida. A documentação é um conjunto de páginas-tutoriais disponibilizadas por uma fonte oficial que especifica em detalhes todos os conceitos da linguagem de programação. Como a maioria delas é muito grande, você pode ler somente as partes em que tem dificuldade ou interesse.
Depois, você pode buscar cursos para unificar todo o conhecimento. Existem diversos cursos, gratuitos e pagos, disponíveis na internet. Caso você deseje aprender a programar para construir uma carreira na área de tecnologia, vale a pena conferir a formação da Trybe, que já fornece todos os conhecimentos necessários na área de programação voltado diretamente para o mercado de trabalho.
2. Criar seus próprios projetos
Coloque tudo que você aprendeu em prática! Arrisque-se tentando criar projetos na linguagem de programação escolhida para descobrir de fato o que você ainda precisa aprender melhor e onde estão suas dúvidas.
Comece com desafios fáceis e, pouco a pouco, vá tornando seus projetos mais complexos. Quando você precisa colocar os conhecimentos em prática por conta própria, sem interferências, é que você saberá se os conceitos básicos estão bem fundamentados e quais são os pontos de melhoria.
3. Buscar o aperfeiçoamento do seu código
Existem mil e uma formas de se programar. É possível que vinte códigos diferentes deem o mesmo resultado. No entanto, nem todos os códigos são adequados, pois sim há códigos melhores do que outros.
Muitas pessoas começam a programar e criam vícios que, posteriormente, podem acabar se tornando um problema, especialmente se vão trabalhar diretamente com um código que é compartilhado entre muitas pessoas programadoras.
Por isso, é importante aprender padrões de projeto e como criar um código limpo. Diversos livros, sites e fóruns dão dicas de como fazer isso, fornecendo inclusive exemplos de como melhorar seu código.
Como vimos, os jogos são uma excelente ferramenta para dar o pontapé inicial na sua jornada no mundo da programação ou consolidar os conhecimentos que você já tem. Muitos jogos são pensados diretamente em como facilitar a aprendizagem, já que muitos conceitos podem ser muito complexos ou abstratos. Porém, somente jogar não é suficiente, depois será necessário tornar seu conhecimento mais concreto.
Continue agora seus estudos de programação conhecendo qual é a melhor linguagem de programação para iniciantes!