🍊 O programador Chaves
Se você já assistiu a série Chaves (El Chavo del Ocho - México), deve se lembrar do episódio, onde o Professor Girafales faz uma pergunta ao Chaves:
Se eu tenho 4 laranjas, e como uma, quantas me restam ?
O Chaves enrola, dizendo que é muito fácil, e no final diz que só sabe fazer essa conta com Maças. Eu já assisti umas 100 vezes, e sempre dou risada. Mas o que isso tem a ver com tecnologia, especificamente programação ?
O meu objetivo com este post é mostrar os perigos de estudar programação da forma errada. Sigam me os bons!
⚠️ Não faça como o Chaves
Se você está começando a estudar programação, ou já tem um bom tempo nisso, com certeza já ouviu coisas como: "Você só vai aprender praticando" ou "Sem praticar você não vai aprender". Eu concordo 100%, inclusive muitas pessoas fazem a seguinte analogia:
Se você quer aprender a andar de skate, não basta assistir 500 horas de vídeos sobre Andar de Skate no Youtube. Você tem que praticar.
E realmente isso é realidade na programação. Mas tem um ponto que me incomoda. As pessoas enfatizam a prática, e deixam um pouco de lado a teoria. E isso pode ser perigoso.
⛸️ Voltando a analogia do Skate, você então decide andar muito de skate, em uma rua plana e obviamente irá cair várias vezes, o que é normal. O problema é quando queda após queda, você não enxerga nenhuma melhora, mas continua praticando. Você desconsidera aprender coisas como o espaçamento entre os pés no skate, a curvatura do seu tronco, o posicionamento dos seus braços, entre outros fatores que influenciam uma queda do skate.
Depois de muitas tentativas, você finalmente consegue se manter em cima do skate com frequência, ou seja, aprendeu a andar.
👨💻 Esse comportamento também acontece quando estamos aprendendo a programar. Como todo mundo só fala em praticar, você deixa de lado a teoria, e começa a fazer site atrás de site, sem pensar muito em como está fazendo, mas sim no resultado final. Por exemplo, ao tentar centralizar um título na tela (pensando no aprendizado em programação web inicial com HTML e CSS), você começa a chutar propriedades e valores, na esperança de dar certo. Até que finalmente, depois de muitos chutes, com uma gambiarra, você consegue centralizar, e na sua cabeça, você acredita que aprendeu a fazer isto.
O problema é que se o contexto for um pouco alterado, e você tentar centralizar vários itens em um formulário por exemplo, você terá que chutar tudo de novo. Ou seja, você aprendeu a centralizar em um contexto muito específico. Você só sabe centralizar se for um parágrafo dentro de uma div. Se for algo diferente disto, já não consegue. É como o Skatista, que acredita que aprendeu a andar, mas se você mudar um pouco o skate, e o lugar onde ele anda, ele volta a cair. E é como o Chaves: Aprendeu a subtrair em um contexto com Maças, mas quando mudou um ponto, já não foi capaz. Você se tornou inflexível, aprendeu algo apenas no seu ambiente controlado.
Quando estiver aprendendo um recurso de uma linguagem, ou um novo framework, ou uma lib, busque entender o objetivo disto, e como realmente funciona. Tente escrever com suas palavras o que você entendeu sobre o recurso. Tire suas próprias conclusões sobre o tema. E claro, pratique. Irá levar um pouco mais de tempo para você prosseguir nos estudos, mas vale muito a pena.
Aprender a programar sem praticar é impossível. Aprender a programar praticando sem entender a teoria é ser um programador Chaves.
Fique a vontade para deixar sua opinião nos comentários. Qualquer ponto de vista é bem-vindo. Abraços.